- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
parametriz ation
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-19-2009 04:52 PM
i have been trying to come up with a resolution to a problem i am
having but so far i cannot come up with a solution and i am hoping
someone here has an idea i can try.
Problem:
suppose i have a sphere or part of a sphere so it is periodic in one
direction and has either one or two poles. suppose that the sphere is
periodic in U and the parameter runs from 0 to 360.
next, suppose i have a set of curves which are on the surface of the
sphere such that they form a closed set in physical space but the
curves can cross the periodic seam and also either use one of the
poles or the pole is interior to the set of curves.
i next discretize the curves and project each of the points onto the
sphere to obtain U,V coordinates so that i can then eventually use a
2D Delaunay triangle mesher and then evaluate the mesh into physical
space.
the problem is that when i project each of the discrete points onto
the sphere they do not form a closed set in parametric space.
rotating the sphere to remove the singularity out of the closed set of
curves is out of the question because i want this to work on any
arbitrary singular, periodic surfaces. so i was wondering if anyone
has any ideas on how to make this work; is there some alternate
parametrization i can use such that the point projection would be
closed and properly oriented in UV space?
i also need this to take my geometry and determine loop relationships, self-intersections, loop intersections so that i can convert to a valid ACIS face entity.
does ACIS have any API's that might help?
thanks
Re: parametriz ation
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-21-2009 10:04 AM
Hi Sawarsi,
If, I understand rightly, the problem you have is the projected curve samples on UV space are not continuous, to be specific, the value of 2d samples jumps when the 3d curve crosses the periodic seam.
ACIS has code to deal with this issue, unfortunately the code is at very low level , there are no API's exposed to user. But I can share with you how we handle the problem.
1) make enough samples (for 3) to work correctly)
2) make sure all your 2d values are inside the base parameter range, in your case it is [0, 360].
3) detect sample jumps: Any two consecutive samples has a value deviation greater than a tolerance value in U direction. (we use half of the parameter range, 180 in your case, as jump tolerance).
4) Adjust parameter values by plus/minus a periodic value to the jumped samples. (plus: when jumped samples are smaller, minus: when it is bigger)
After that you'll get a set a of 2d points which is continuous, but may not closed at the start point (say start U value may be 200; end U value may be 558). This should be ok, When you create a 2d curve, you just need to pass the closed periodic info to the curve creation function.
Regards,
Renjie
Re: parametriz ation
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-21-2009 10:19 AM
thanks for this rxu and i have already thought of this and this will work for those cases where the loop crosses over the periodic seam but consider the attached image. this image shows a half-sphere, the pole is shown in cyan, the seam in green and the sample points are shown in black; the sphere is periodic in V. now suppose you start at the bottom of the seam and start traversing to the right and the up the right branch, so far so good, now keep going around the sample points notice that the v is essentially always increasing and if you plot the resulting UV space coordinates you end up with a either a disjoint or self-intersecting loop. does this make sense?
Re: parametriz ation
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-21-2009 12:17 PM
I will break up the curve into three pieces: The left, from the pole to the left bottom; the bottom, and the right, from the right bottom to the pole. Then handle each piece separately.
Regards,
Renjie
Re: parametriz ation
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-21-2009 12:28 PM
this is not a one piece curve it is four separate curves the bottom rightmost is running from the seam to the right, then a second curve from the bottom to the top then back down again and then to the right ending at the seam. i don't see how that helps. also, the pole is not an included point the set of points actually enclose the pole. do you see?
Re: parametriz ation
[ Edited ]
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-21-2009 01:58 PM - last edited on 12-22-2009 08:01 AM
Yesterday uploaded a wrong image.
Withe the adjustment of uv value after crossing the peoridic seam, I think you should be able get a continuous samples, without self intersection and loops. Depending on the start sample and the orienatation, the shape of the result samples may vary, here is one possibility (the shape of the 2d samples more likely be curved not straight).
Re: parametriz ation
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-22-2009 07:39 AM
can you clarify just a bit more? in the physical sphere i have one seam and one pole. how did you manage to map this to a plane with 3 poles and 3 seams?
Re: parametriz ation
[ Edited ]
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-24-2009 11:11 PM - last edited on 12-24-2009 11:15 PM
You should remember that the open 2D curve (pcurve) can represent the closed 3D one (curve). Also you should add/subtract the offset of 2D curve to place it on valid place.

