import
numpy as np
import
pygame
from
pygame.
locals
import
*
class
trig:
Ys
=
[]
def
__init__(
self
, width
=
1600
, height
=
900
,
gap
=
100
, fps
=
60
, radius
=
100
):
self
.width
=
width
self
.height
=
height
self
.fps
=
fps
self
.screen
=
pygame.display.set_mode((
self
.width,
self
.height))
self
.clock
=
pygame.time.Clock()
self
.gap
=
gap
self
.t
=
0
self
.r
=
radius
self
.run
=
True
while
self
.run:
self
.clock.tick(
self
.fps)
self
.screen.fill(
'white'
)
for
event
in
pygame.event.get():
if
event.
type
=
=
pygame.QUIT:
self
.run
=
False
if
event.
type
=
=
KEYDOWN:
if
event.key
=
=
K_ESCAPE:
pygame.quit()
x, y
=
400
,
400
x
+
=
(
self
.r
*
np.cos(
self
.t))
y
+
=
(
self
.r
*
np.sin(
self
.t))
pygame.draw.line(
self
.screen,
'grey'
,
(
400
,
400
),
(
400
+
1000
,
400
),
3
)
pygame.draw.line(
self
.screen,
'grey'
,
(
400
,
400
+
self
.r),
(
400
+
1000
,
400
+
self
.r),
3
)
pygame.draw.line(
self
.screen,
'grey'
,
(
400
,
400
-
self
.r),
(
400
+
1000
,
400
-
self
.r),
3
)
pygame.draw.circle(
self
.screen,
'blue'
,
(
400
,
400
),
self
.r,
5
)
pygame.draw.line(
self
.screen,
'green'
,
(
400
,
400
),
(x, y),
3
)
self
.Ys.insert(
0
, y)
if
len
(
self
.Ys) >
1100
-
self
.gap:
self
.Ys.pop()
pygame.draw.line(
self
.screen,
'black'
, (x, y),
(
400
+
self
.gap,
self
.Ys[
0
]),
3
)
for
i
in
range
(
len
(
self
.Ys)):
pygame.draw.circle(
self
.screen,
'red'
,
(i
+
400
+
self
.gap,
self
.Ys[i]),
1
,
1
)
if
event.
type
=
=
KEYDOWN:
if
event.key
=
=
K_RIGHT:
self
.gap
+
=
1
if
event.key
=
=
K_LEFT:
self
.gap
-
=
1
self
.t
+
=
0.01
pygame.display.update()
if
__name__
=
=
'__main__'
:
sin
=
trig()
pygame.quit()