To: discussions about usage and development of dia <dia-list gnome org>
Subject: Re: Length of a PolyLine
Date: Tue, 25 Jan 2005 22:51:09 +0100
Chris Burkert wrote:
Hi List,
at first I would like to thank all of you developers of dia.
I'm using dia for drawing maps where I take some raster data like a
.png, put some lines and labels on it and export this as a .png again. I
have an example at [1].
Now I would like to measure the length of the red PolyLine at the
seaside in a defined unit. My first idea was to use pythagoras in the
python console and I wrote this little script which I load with
execfile("script.py"):
#!/usr/bin/env python
from math import sqrt
points =
dia.active_display().diagram.layers[0].objects[1].properties['poly_points']
distance = 0
size = len(points.value)
for i in range(size):
a = points.value[i]
if i < size-1:
b = points.value[i+1]
distance += sqrt(pow(2,a.x-b.x) + pow(2,a.y-b.y))
Shouldn't the parameters to pow() be the other way around?
print distance
The problem is that the tuple points.value seems not to be ordered thus
points.value[42] is not always the same.
What do you mean with "not always the same"? Looking just at the
Python bindings plug-ins/python/pydia-property.c(PyDia_get_PointArray)
you'll get the points in the same order as stored internally. And
that needs to be ordered to get the drawing right.
So what can I do to mesasure
the length of this PolyLine correct? Except parsing the .dia xml by hand
:-)
After fixing the bug from above it should work ;-)
Hans
-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to
get along without it. -- Dilbert