Найти - Пользователи
Полная версия: рисование в интерактивном режиме
Начало » Python для экспертов » рисование в интерактивном режиме
1
gen
есть задача проиллюстрировать движение точки по экрану подскажете пожалуйста, как это сделать средствами самого питона (без доп библиотек), ну или максимум с wxPython'ом,
пишу под виндой, заранее спасибо за ответ!
OlDer
Вот здесь можно писмотреть примеры:
http://wiki.wxpython.org/index.cgi/RecipesImagesAndGraphics
masai
Можно попробовать модуль turtle из стандартной библиотеки.
gen
Спасибо
-=<fantom>=-
Если мне память не изменяет, в 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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB