2D vector graphics Problem
Available news archives: comp.lang.tcl - comp.lang.python - comp.security.firewalls - sci.crypt - comp.lang.php - comp.lang.javascript
Google
 
Web news.hping.org


comp.lang.python archive

2D vector graphics Problem

From: Karl Max <karlmax@tiscalinet.it>
Date: Sun May 29 2005 - 15:34:20 CEST

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
Received on Thu Sep 29 16:15:56 2005