Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.12.2020
Сообщений: 2

Моделирование полёта

16.11.2023, 21:48. Показов 1521. Ответов 1

Студворк — интернет-сервис помощи студентам
Модифицируйте код для «моделирования полёта» так, чтобы можно было
изменять начальную скорость, а график автоматически масштабировался в области
рисования.
Сам код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import tkinter
import math
def plot_x_axe(x0,y0,x1):
    x_axe=[]
    xx = (x0, y0)
    x_axe.append(xx)
    xx = (x1, y0)
    x_axe.append(xx)
    canvas.create_line(x_axe, fill="black", width=2)
def plot_y_axe(x0, y0, y1):
    y_axe = []
    yy = (x0, y1)
    y_axe.append(yy)
    yy = (x0, y0)
    y_axe.append(yy)
    canvas.create_line(y_axe, fill="black", width=2)
def DrawGraph():
    # Получаем и пересчитываем параметры
    dta = sc.get()
    alpha = dta * math.pi / 180
    dtlbl = clist.get()
    # Очищаем область для текста
    canvas.create_rectangle(x1i - 90, y1i - 50, x1i + 50, y1i + 10, fill = "#eeeeff")
    # Считаем g=10, v0 подбираем, чтобы всё влезало в canvas
    g = 10.0
    v = 98
    S = int((v ** 2) * math.sin(2 * alpha) / g)
    H = int(((v ** 2) * (math.sin(alpha)) ** 2) / (2 * g))
    points = []
    for x in range(x0i, x1i):
        xx = (x-x0)
        y = (xx * math.tan(alpha))-((xx ** 2) * g /
                                    (2 * (v ** 2) * (math.cos(alpha) ** 2)))
        if y > 0:
            yy = int(y0-y)
        else:
            yy = y0i
        #
        pp = (x, yy)
        points.append(pp)
    # Собственно график
    canvas.create_line(points, fill=dtlbl, smooth=1)
    plot_x_axe(x0i, y0i, x1i)
    # Параметры графика
    dtext = "Дальность: " + str(S)
    vtext = "Высота: " + str(H)
    dalnost = canvas.create_text(x1i-70, y1i-30, text = dtext, fill = dtlbl, anchor = "w")
    vysota=canvas.create_text(x1i-70,y1i-10,text=vtext,fill=dtlbl,anchor="w")
# Основная часть
tk = tkinter.Tk()
tk.title("Моделирование полёта")
# Верхняя часть окна со списком и кнопками
menuframe=tkinter.Frame(tk)
menuframe.pack({"side":"top","fill":"x"})
# Надпись для списка
lbl=tkinter.Label(menuframe)
lbl["text"]="Выбор цвета:"
lbl.pack({"side":"left"})
# Инициализация и формирование списка
clist=tkinter.StringVar(tk)
clist.set('black')
#
cspis=tkinter.OptionMenu(menuframe,clist,
    'red',
    'green',
    'blue',
    'cyan',
    'magenta',
    'purple',
    'black')
cspis.pack({"side":"left"})
# Кнопка управления рисованием
btnOk=tkinter.Button(menuframe)
btnOk["text"]="Нарисовать"
btnOk["command"]=DrawGraph
btnOk.pack({"side":"left"})
# Кнопка закрытия приложения
button=tkinter.Button(menuframe)
button["text"]="Закрыть"
button["command"]=tk.quit
button.pack({"side":"right"})
#
# Надпись для шкалы углов
lbl2=tkinter.Label(tk)
lbl2["text"]="Угол, градусы:"
lbl2.pack({"side":"top"})
# Шкала углов
sc=tkinter.Scale(tk,from_=0, to=90, orient="horizontal")
sc.pack({"side":"top","fill":"x"})
# Область рисования (холст)
canvas=tkinter.Canvas(tk)
canvas["height"]=360
canvas["width"]=480
canvas["background"]="#eeeeff"
canvas["borderwidth"]=2
canvas.pack({"side":"bottom"})
#
# Установки осей координат
x0=50.0
y0=300.0
x1=450.0
y1=50.0
#
x0i=int(x0)
x1i=int(x1)
y0i=int(y0)
y1i=int(y1)
# Оси координат
plot_x_axe(x0i,y0i,x1i)
plot_y_axe(x0i,y0i,y1i)
#
tk.mainloop()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.11.2023, 21:48
Ответы с готовыми решениями:

Моделирование полета самолета
Подскажите, а как смоделировать полет самолета, если есть модель, с помощью библиотеки Aerospace в Simulink?

Моделирование динамики полета БПЛА
Добрый день, форумчане. Подскажите, возможно ли построить в Матлабе математическую модель движения БПЛА? Читаю книжку В.С. Моисеева,...

Моделирование полёта снаряда орудия
Нудно сделать вот эту задачу--------> 1. Моделирование полёта снаряда орудия. Задаётся масса снаряда, начальная скорость, угол наклона...

1
147 / 135 / 50
Регистрация: 14.05.2021
Сообщений: 642
17.11.2023, 01:40
Код не запустится, так как все отступы пошли по *****.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.11.2023, 01:40
Помогаю со студенческими работами здесь

Моделирование полета крылатой ракеты
Доброго времени суток! В универе получил задание по курсовой работе. Введение. Для управления полетом крылатой ракеты используются ...

Моделирование полета парашютиста на ЭВМ
Доброго времени суток.Помогите решить задачу. Без неё не допускают к зачету. Условие прилагается. Нужно только расписать диф уравнения до...

Моделирование полета парашютиста на ЭВМ
Доброго времени суток.Помогите решить задачу. Без неё не допускают к зачету. Условие прилагается. Код напишу сам, нужно только расписать...

Математическое моделирование полета вертолета
Здравствуйте!!! У меня скоро защита курсовой работы на тему, который написаны на заголовке, можете придумать примерные вопросы с точки...

Моделирование траектории полета тела
подскажите алгоритм-формулу по моделированию полета тела, учитывается угол под каким бросают тело начальная скорость и притяжение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru