Прикреплённый файл «2013-11-15-graficsin.py»
Загрузка 1 #!/usr/bin/env python
2 # coding: utf
3 '''
4 График sin(x) или другой заданной функции
5 '''
6 import pygame
7 from math import *
8
9 def scale(dot,src,dst):
10 '''Преобразовать координату dot внутри отрезка src
11 в координату внутри отрезка dst'''
12 return dst[0]+float(dot-src[0])*(dst[1]-dst[0])/(src[1]-src[0])
13
14 pygame.init()
15 W,H=780,590
16 Ndots=200 # Количество вершин ломаной-графика
17
18 def apply(f,x):
19 '''Функция, нужная только чтобы два раза не вычислять выражение x,
20 а также для иллюстрации того, что функции — это обычные объекты'''
21 return x,f(x)
22
23 def e2(x): return 2.**x
24 #function,A,B=e2,-5,4
25 function,A,B=sin,-5,4
26 # Список из Ndots точек (x,f(x)) на отрезке [A,B]
27 Dots=[apply(function,A+float(i)*(B-A)/(Ndots-1)) for i in xrange(Ndots)]
28 # Минимальное и максимальное значение функции на этих точках
29 Farea=min([y for x,y in Dots]),max([y for x,y in Dots])
30 # Вершины графика функции (не забыть перевернуть по Y)
31 Graph=[(scale(x,(A,B),(0,W-1)),H-scale(y,Farea,(1,H))) for x,y in Dots]
32
33 scr=pygame.display.set_mode((W,H))
34 pygame.draw.lines(scr, pygame.Color("tan"), False, Graph)
35
36 while pygame.event.wait().type != pygame.QUIT:
37 pygame.display.flip()
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2013-11-22 09:07:03, 1.5 KB) [[attachment:2013-11-15-graficsin.py]]
- [получить | показать] (2013-11-22 09:05:14, 1.4 KB) [[attachment:2013-11-15-spiral.py]]
- [получить | показать] (2013-11-22 09:05:36, 1.4 KB) [[attachment:2013-11-15-ugad1.py]]
- [получить | показать] (2013-11-22 09:05:29, 1.0 KB) [[attachment:2013-11-15-ugad2.py]]
Вам нельзя прикреплять файлы к этой странице.