Re: Crossing between PATCH and plane



daniel ennis ha scritto:
Have you considered parameterizing the points with cylindrical
coordinates? If you think about the connectedness that you are
envisioning for your points, they are connected in a relatively
circular direction. Depending upon the complexity of your problem
you could assign cylindrical coordinates to each point and then
connected them based upon their cicumferential/theta coordinate.
Does that make sense?

Yes, it makes sense if the problem is well behaved, but is easy, unfortunately, to generate an example that would make this procedure fail in general...it is sufficient to create an "ad hoc" convexity where the points along the polygon, for a small piece of the polygon, move in the opposite direction with respect to the positive direction of the angle.


Alternately, you can determine the connectedness of points based upon
the distance between points. Minimum distances may be assummed to be
neighbors. Again this depends on the complexity of your problem?

It could happen that crossing generates more than one closed polygon (this case, assume it as a degenerate one, but it helps in creating something making fail this idea). Let suppose this two polygons to be almost tangent (but not exactly tangent, then you could find a candidate neighbor point that actually belong to another polygon...


Will either of those approaches help?

Sure, every idea always helps...actually I think it is not possible to solve to problem without resorting to a labeling of the edges of the triangles in such a way to follow the polygon step by step...
The idea is as follows:
- Generate the plane
- From the set of patch triangles determine those crossing the plane
- For each crossing triangle determine the crossing points (care should be taken in the case of triangles being on the plane and in case of triangles having only one vertex on the plane)
- Then, start from one triangle where two crossing point are available (they could be coinciding)
- Take the first point as the starting point of the polygon, and the second point as the first vertex.
- Look at the label of the edge of the second point, and find the neighbor triangle in the patch having such edge among its edges.
- Take the crossing points on this triangle: they must exist and the first one will coincide with the second point of the previous triangle
- repeat the previous step until the polygon is closed or there are no more points left.
- If some point is left, then, either the solid is not completely connected, or the intersection generates more than one polygon. In any case, start again the procedure above in order to generate a new polygon.


More or less the steps above are my idea...

Bye,
Gab
.



Relevant Pages

  • Re: Quake performance SGI vs Sun
    ... he said a triangle is a polygon. ... You answered saying that a triangle ... Just the facts. ...
    (comp.sys.sun.hardware)
  • Re: negative z coordinates
    ... I would generate a triangle fan (polygon) rather than a vector of triangles. ... If it's a software rasterizer, ... Then he would clip indexed primitives and write ...
    (comp.graphics.api.opengl)
  • Re: Texture 3D interpolation between layers
    ... this edge has on both endpoints the same texture value in r-component even if it's different height. ... becomes an triangle edge, ogl interpolates itself on this ... but withouth changes with the original polygon. ...
    (comp.graphics.api.opengl)
  • Re: Question on concave to convexs converting alorithm
    ... to "ear clipping" for triangulating a simple polygon in 2D. ... If the triangle does not ... a "convex" vertex of the 3D polyhedron. ...
    (comp.graphics.algorithms)
  • Re: Example of a set requiring d+1 points (Caratheodory theorem)
    ... You can use connectedness to ... so suppose x is in the interior of the simplex. ... triangle formed by those three points S. ... this will collapse to a line ...
    (sci.math)