Уведомления

Группа в Telegram: присоединиться

#1 Фев. 24, 2007 12:30:54

gen
От:
Зарегистрирован: 2007-02-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

рисование в интерактивном режиме

есть задача проиллюстрировать движение точки по экрану подскажете пожалуйста, как это сделать средствами самого питона (без доп библиотек), ну или максимум с wxPython'ом,
пишу под виндой, заранее спасибо за ответ!



Офлайн

#2 Фев. 24, 2007 21:43:30

OlDer
От:
Зарегистрирован: 2006-07-19
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

рисование в интерактивном режиме

Вот здесь можно писмотреть примеры:
http://wiki.wxpython.org/index.cgi/RecipesImagesAndGraphics



Офлайн

#3 Фев. 24, 2007 22:19:53

masai
От:
Зарегистрирован: 2007-02-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

рисование в интерактивном режиме

Можно попробовать модуль turtle из стандартной библиотеки.



Офлайн

#4 Фев. 24, 2007 23:04:17

gen
От:
Зарегистрирован: 2007-02-19
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

рисование в интерактивном режиме

Спасибо



Офлайн

#5 Фев. 26, 2007 20:38:44

-=<fantom>=-
От:
Зарегистрирован: 2006-08-12
Сообщения: 121
Репутация: +  0  -
Профиль   Отправить e-mail  

рисование в интерактивном режиме

Если мне память не изменяет, в 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()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version