E

#### enmce

This is my first post, nice to meet you all!

I`m biology student from Russia, trying to learn python to perform some

simple simulations.

Here`s my first problem.

I`m trying to perform some simple 2d vector rotations in pygame, in order

to learn the basics of linear algebra and 2d transformations. So far i

understand matrix multiplication pretty well, and probably all my math is

right. Eventually i`m planning to write Poly class, and use it to rotate

and translate some simple shapes. But when i try and write it in the

program, i get very weird results, like all points of rectangle with

coordinates [0,0],[0,100],[100,0],[100,100] start to go spiral and

eventually shrink to the center. Although even Excel calculations with

this formulas give me right result.

I use Python 3.3 on Windows Xp.

What is wrong with my code?

Code:

```
import pygame
import math as m
black = ( 0, 0, 0)
white = ( 255, 255, 255)
green = ( 0, 255, 0)
red = ( 255, 0, 0)
class Poly():
pos = [100,100] #x and y coordinates of a point
rot = m.radians(1) #rotation in degrees
def draw(self): #draw point
pygame.draw.circle(screen,white,self.pos,10,0)
def rotate(self): # rotation method
sin = m.sin(self.rot) #calculationg sin and cos
cos = m.cos(self.rot)
x_rot = int(self.pos[0]*cos-self.pos[1]*sin) #mulpitplicating
vector to rotation matrix
y_rot = int(self.pos[0]*sin+self.pos[1]*cos)
self.pos[0] = x_rot #set new coordinates to a point
self.pos[1] = y_rot
a = Poly() #Some simple sample points giving rectangle
b = Poly()
c = Poly()
d = Poly()
b.pos = [0,100]
c.pos = [100,0]
d.pos = [0,0]
pygame.init()
size = [700,500]
screen = pygame.display.set_mode(size)
done = False
clock = pygame.time.Clock()
while done == False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
a.rotate() #perform rotation
b.rotate()
c.rotate()
d.rotate()
screen.fill(black)
a.draw() #draw point
b.draw()
c.draw()
d.draw()
pygame.display.flip()
clock.tick(30)
pygame.quit()
```

P.S. Sorry for my english, bit rusty in that department.