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

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

02.08.2016, 22:14. Показов 19142. Ответов 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
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 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
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
04.08.2016, 07:25
А что тут особо объяснять?
х меняется в цикле. То, что прибавляем и на что домножаем - это для сдвига и масштабирования графика.
Говнокод, конечно, такие вещи надо отделять. Написано то ли новичком, то ли на скорую руку.
0
2 / 2 / 1
Регистрация: 30.12.2015
Сообщений: 23
07.08.2016, 17:02  [ТС]
Говнокод, конечно, такие вещи надо отделять.
Подскажи что нужно исправить?
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru