Hi all, I'm new here. Name's Max from tuscany, and I don't speak english very well :-) I am not veteran at coding, I am most like an "artisan coder" since commodore 64 times.
Now the problem: I would like to have a little 2d engine to calculate and trace segments and poly's and their collisions, rotations and trasformations. I didn't understand too much in tutorials (you're all high school coders, well informed in maths and programming theory!!! :-))) so I took my old school books on Cartesian space and had a refresh. Proceeding in this not too optimized way of coding my needs, I took down some generic classes to describe primitive objects in space (vertexes, segments, poly's etc...). Now I try to make a point rotate around another point. Here's my piece of code: def rotate(self, w): # This method belongs to the class Vertex # w = angle expressed in radiants x, y = self.coords xRel, yRel = self.relPoint # The rotation should be relative to this sin, cos = math.sin(w), math.cos(w) x = x * cos - y * sin - xRel * cos + yRel * sin + xRel y = x * sin + y * cos - xRel * sin - yRel * cos + yRel self.coords = (x,y) I know the style isn't professional, and if you should have some piece of advice, you're welcome... but that's not the question. When I render it graphically, using pygame 1.6, the point tends to fall towards the center of rotation round after round. I mean if I have a loop rotating the point by a fixed angle, the point is like "attracted" by the center every round it does, like in a vortex. I think it depends from float representation inside python, but I have no clear idea about how to resolve it. Maybe should I use Decimal module? Or is there any trick on this subject (2D vector graphics?) that I can't even imagine? Thanks you all, Max -- http://mail.python.org/mailman/listinfo/python-list