Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/103: Рейтинг темы: голосов - 103, средняя оценка - 4.63
2 / 2 / 1
Регистрация: 30.12.2015
Сообщений: 23

Построение графика sin(x)

02.08.2016, 22:14. Показов 18999. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, подробно этот кусок кода построения графика sin(x)... А то чет всё никак не пойму логику...

Python
1
2
3
4
5
6
7
8
9
10
11
12
height = 600
center = height//2
x_increment = 1
x_factor = 0.02
y_amplitude = 200
 
xy = []
for x in range(980):
    xy.append((x+10) * x_increment)
    xy.append(int(math.sin(x * x_factor) * y_amplitude) + center)
 
sin_line = canv.create_line(xy, fill='blue')
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.08.2016, 22:14
Ответы с готовыми решениями:

Составьте программу для вычисления произведения: sin(1)*sin(2)*…*sin(n)
Составьте, пожалуйста программу максимально примитивно, мы пока только начали изучать питон, препод придерётся, если увидит слишком умный...

Построение графика sin(x)
Доброго времени суток! Нашел похожее под делфи - https://www.cyberforum.ru/delphi-beginners/thread122904.html только там sin(x)*cos(x),...

Построение графика функции y=sin(x)+2
Всем привет,проблема такая,задали задачу для курсовой,нарисовать в паскале график y=sin(x)+2, посмотреть какой график можно тут...

5
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,180
Записей в блоге: 6
03.08.2016, 15:52
Видимо, canv.create_line принимает на вход чередующиеся значения x и y.
1
2 / 2 / 1
Регистрация: 30.12.2015
Сообщений: 23
03.08.2016, 21:41  [ТС]
Было бы хорошо более подробно рассказать... Буду очень благодарен...
Кусок кода вырезал где-то в интернете и приспособил для себя для построения графика
Вот полный код, но пояснения требует только где рассчитывается и строится синус
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
from tkinter import *
import math
 
root = Tk()
root.title("Simple plot using canvas and line")
root.geometry('1000x600')
 
canv = Canvas(root, width = 1000, height = 600, bg = "#002")
 
for x in range(25):
    k = 44.5 * x
    canv.create_line(10+k, 590, 10+k, 10, width=0.3, fill='#191938')
    canv.create_line(10, 10+k, 990, 10+k, width=0.3, fill='#191938')
 
canv.create_line(10,10,10,600, width=1, arrow=FIRST, fill='white')
canv.create_line(0,590,990,590, width=1,arrow=LAST, fill='white')
canv.create_line(10,590,990,10, width=1, fill='red')
 
height = 600
center = height / 2
x_increment = 1
x_factor = 0.02
y_amplitude = 200
 
xy = []
for x in range(980):
    xy.append((x+10) * x_increment)
    xy.append(int(math.sin(x * x_factor) * y_amplitude) + center)
 
sin_line = canv.create_line(xy, fill='blue')
 
canv.pack()
root.mainloop()
1
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,180
Записей в блоге: 6
04.08.2016, 07:25
А что тут особо объяснять?
х меняется в цикле. То, что прибавляем и на что домножаем - это для сдвига и масштабирования графика.
Говнокод, конечно, такие вещи надо отделять. Написано то ли новичком, то ли на скорую руку.
0
2 / 2 / 1
Регистрация: 30.12.2015
Сообщений: 23
07.08.2016, 17:02  [ТС]
Говнокод, конечно, такие вещи надо отделять.
Подскажи что нужно исправить?
0
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,180
Записей в блоге: 6
08.08.2016, 07:31
Лучший ответ Сообщение было отмечено Feel_you как решение

Решение

Примерно так:
1. Создаём график на некотором интервале:
Python
1
2
x = ... от и до
y = sin(x)
Обращаю внимание - тут нет никаких дополнительных коэффициентов, они появляются потом.
2. Итак, у нас есть чистые математические x и y, и вот их мы уже передаём в график.
Python
1
2
x_graph = x*kx+dx
y_graph = y*ky+dy
Ещё лучше - не рисовать графики самому, а воспользоваться готовой библиотекой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2016, 07:31
Помогаю со студенческими работами здесь

Построение графика функции y = sin (3x)
Создать программу, которая отображает график функции y = sin (3x)

Построение графика функции y=sin(x)
есть знатоки кто может помочь ?)) 1. табулированием функции y=sin(x), 2.в одномерном массиве обчислить средние арифметическое...

Построение графика sin, cos и tg в TChart
Я делаю "Научный калькулятор". Помогите, пожалуйста, построить графики синуса, косинуса и тангенса в TChart. Нужно, чтобы при введении...

Построение графика функции y=sin(x)*cos(x)
Разработать программу вычисления функций y=sin(x)*cos(x) и вывести на экран ее график. Вывести оси координат. Аргументы тригонометрических...

Построение графика sin из линий по алгоритму Брезенхэма
Прошу помочь с этой непростой задачей! Гуглил весь день, ничего не нашел. Есть код программы, рисующей что-то вроде диагонали. Мне же...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru