Форум сайта python.su
есть задача проиллюстрировать движение точки по экрану подскажете пожалуйста, как это сделать средствами самого питона (без доп библиотек), ну или максимум с wxPython'ом,
пишу под виндой, заранее спасибо за ответ!
Офлайн
Вот здесь можно писмотреть примеры:
http://wiki.wxpython.org/index.cgi/RecipesImagesAndGraphics
Офлайн
Можно попробовать модуль turtle из стандартной библиотеки.
Офлайн
Спасибо
Офлайн
Если мне память не изменяет, в turtle даже есть функция demo().
Весьма своеобразно графика сделана, но вполне терпимо. Я ради прикола три фазы складывал:
# -*- coding: cp1251 -*-
from Tkinter import *
from math import *
def Screen():
root=Tk()
Holst=Canvas(root,bg='white')
for x in range(0,500,40):
Holst.create_line(x,0,x,500,fill='#FF0000')
for y in range(0,500,40):
Holst.create_line(0,y,500,y,fill='#FF0000')
i=0
while i<15:
i=i+0.005
U1=120.0*sin(i)
Holst.create_line(i*40,U1+200,i*40+1,U1+201,fill='#0000FF')
U2=120.0*sin(i+2*pi/3)
Holst.create_line(i*40,U2+200,i*40+1,U2+201,fill='#00A0FF')
U3=120.0*sin(i-2*pi/3)
#Holst.create_line(i*40,U3+200,i*40+1,U3+201,fill='#A0A0A0')
Uf=U1-U2
Holst.create_line(i*40,Uf+200,i*40+1,Uf+201,fill='#000000')
Un=U1+U2+U3
#Holst.create_line(i*40,Un+200,i*40+1,Un+201,fill='#000000')
Holst.pack(fill='both',expand=1)
Holst.create_line(100,100,101,101)
root.mainloop()
def main():
Screen()
if __name__=='__main__':
main()
и ещё примерчик - получение меандра путём сложения нечётных гармоник:
# -*- coding: cp1251 -*-
from Tkinter import *
from math import *
def Screen():
root=Tk()
Holst=Canvas(root,bg='white')
for x in range(0,800,40):
Holst.create_line(x,0,x,800,fill='#FF0000')
for y in range(0,600,40):
Holst.create_line(0,y,800,y,fill='#FF0000')
i=0
while i<20:
i=i+0.001
U1=80.0*sin(i)
Holst.create_line(i*40,U1+80,i*40+1,U1+81,fill='#0000FF')
U2=80.0*sin(i*3)*1/3
Holst.create_line(i*40,U2+190,i*40+1,U2+191,fill='#00A0FF')
U3=80.0*sin(i*5)*1/5
Holst.create_line(i*40,U3+245,i*40+1,U3+246,fill='#A0A0A0')
U4=80.0*sin(i*7)*1/7
Holst.create_line(i*40,U4+290,i*40+1,U4+291,fill='#A000FF')
U5=80.0*sin(i*9)*1/9
Holst.create_line(i*40,U5+320,i*40+1,U5+321,fill='#A0F0FF')
U6=80.0*sin(i*11)*1/11
Holst.create_line(i*40,U6+340,i*40+1,U6+341,fill='#A0F04F')
U7=80.0*sin(i*13)*1/13
Holst.create_line(i*40,U7+360,i*40+1,U7+361,fill='#A0F0FF')
Ug=U1+U2+U3+U4+U5+U6+U7
Holst.create_line(i*40,Ug+500,i*40+1,Ug+501,fill='#000000')
Holst.pack(fill='both',expand=1)
Holst.create_line(100,100,101,101)
root.mainloop()
def main():
Screen()
if __name__=='__main__':
main()
Офлайн