|
Re: An easier way to draw a geodesic? [message #70340 is a reply to message #70338] |
Sun, 04 April 2010 12:43  |
Aram Panasenco
Messages: 41 Registered: April 2010
|
Member |
|
|
On Apr 4, 7:03 am, "Kenneth P. Bowman" <k-bow...@null.edu> wrote:
> In article
> < 018e5283-b8e4-446a-9ba1-35625dcf6...@g11g2000yqe.googlegroup s.com >,
> Aram Panasenco <panasencoa...@gmail.com> wrote:
>
>
>
>
>
>> Hello, everyone! I've been programming in IDL for a little under a
>> year now, and I am currently building a program part of which involves
>> graphically selecting a 4-point polygon on a sphere (each side of
>> which is a geodesic).
>> For that, I record the user's clicks and moves on the screen and store
>> the x- and y- coordinates of the points they selected in a 2x4 array.
>> The array is then processed by a function that transforms it into x-
>> and y- coordinates of a spherical polygon. To do so, it first converts
>> the coordinates to spherical using cv_coord. Then it uses the library
>> function map_2points to find the longitude-latitude path arrays
>> between the 4 point pairs. Then it combines all the longitudes and
>> latitudes into one array, and cv_coord's them back into cartesian
>> coordinates. The points are then used as data for an IDLgrPolyline
>> object.
>
>> The function works, but the resulting polygon looks extremely choppy,
>> making it practically impossible to do any precision work (which is
>> necessary). So my question is - how do I draw a geodesic curve without
>> using three precision-degrading processes (cv_coord, map_2points, and
>> cv_coord again) in a row?
>
>> Thank you,
>> ~Aram Panasenco
>
>> P.S. I can post the function that renders the polygon online if
>> necessary.
>
> How far apart are your points? Precision should not be a problem
> unless they are very close together. We use the same basic
> approach all the time to draw great circles on maps (using
> widget events and CONVERT_COORD).
>
> How many points are you using to create each side of the polygon?
>
> Ken Bowman
Ah, that's the problem! I used points 2 degrees apart (dpath=2). Now I
changed dpath to 10, and it renders perfectly. I think I tried that
approach briefly before and didn't like it because it made my
polygon's corners sloppy, but I can easily insert the corner points
manually.
Thank you very much!
~Aram Panasenco
|
|
|
Re: An easier way to draw a geodesic? [message #70343 is a reply to message #70340] |
Sun, 04 April 2010 07:03  |
Kenneth P. Bowman
Messages: 585 Registered: May 2000
|
Senior Member |
|
|
In article
<018e5283-b8e4-446a-9ba1-35625dcf678c@g11g2000yqe.googlegroups.com>,
Aram Panasenco <panasencoaram@gmail.com> wrote:
> Hello, everyone! I've been programming in IDL for a little under a
> year now, and I am currently building a program part of which involves
> graphically selecting a 4-point polygon on a sphere (each side of
> which is a geodesic).
> For that, I record the user's clicks and moves on the screen and store
> the x- and y- coordinates of the points they selected in a 2x4 array.
> The array is then processed by a function that transforms it into x-
> and y- coordinates of a spherical polygon. To do so, it first converts
> the coordinates to spherical using cv_coord. Then it uses the library
> function map_2points to find the longitude-latitude path arrays
> between the 4 point pairs. Then it combines all the longitudes and
> latitudes into one array, and cv_coord's them back into cartesian
> coordinates. The points are then used as data for an IDLgrPolyline
> object.
>
> The function works, but the resulting polygon looks extremely choppy,
> making it practically impossible to do any precision work (which is
> necessary). So my question is - how do I draw a geodesic curve without
> using three precision-degrading processes (cv_coord, map_2points, and
> cv_coord again) in a row?
>
> Thank you,
> ~Aram Panasenco
>
> P.S. I can post the function that renders the polygon online if
> necessary.
How far apart are your points? Precision should not be a problem
unless they are very close together. We use the same basic
approach all the time to draw great circles on maps (using
widget events and CONVERT_COORD).
How many points are you using to create each side of the polygon?
Ken Bowman
|
|
|