3D plane offsets

Hello all,

I have a 3D terrain model consisting of e.g. 3D faces.
When I need a vertical offset to be applied it's a simple matter of adding delta Z to each point.
But when I need to give each plane a certain offset perpendicular to itself, things are getting complex.

Is anybody aware of a tool (in Bricacad) that will solve this for me?

T.I.A.

Arno van Eeuwen

Comments

  • Hallo Arno,

    ...just trying to understand...?
    What are you trying to do with the terraim model ?
    Are you trying to OFFSET(or MOVE) the 3DFACES in their NORMAL (normal vector) + or - direction ?
    If Yes, then you have 3Dfaces intersecting each other randomly according to the their offset distance and direction....
    thereby "distorting" the original terrain model...right ?
    Could you please describe your target more thorougly ?

    Regards
    Konstantin
  • Hi Konstantin,

    yes, it's along their NORMAL I want to offset each FACE and end up with a new terrain model.
    So all shifted planes should 'grow' towards each shifted neighbour or get clipped by their thifted neighbours. I even can imagine some FACES disappearing due to the offset.
    I expect this to be quite complex, hence the search for an existing tool rather than 'inventing a wheel'.

    Regards,

    Arno
  • Hi Arno,

    i suppose that you have a triangulated terrain model....
    Every shifted 3Dface (a list of 3 points '(x.x   y.y   z.z)... ) moved along the normal direction (+ or -) for a specific distance,
    produces a new List of 3 points.
    So one possible consice algorithm would be as follows :

    1. create a selection set of ALL 3Dfaces
    2. move them (ALL or somehow selected ) along their Normal Direction (+ OR - ) for a specific distance (global, random per Face etc)
    3. Create a list of ALL the points of ALL 3Dfaces thereby eliminating double points (if any)
        and points having the same x.x and y.y coordinates  (triangulation condition)
    4. triangulate the new SET of Points
    5. repeat 1-4 for a desired number of times

    So you are effectively morphing the original surface to a new one after every iteration.
    If you can "lisp", it isn't that difficult to program this yourself...otherwise you have to find somebody to write it for you
    I don't know of any similar lisp routine out there...
    Have a look at these  related sites
    http://www.cs.rutgers.edu/~decarlo/surfmorph.html
    http://demonstrations.wolfram.com/SurfaceMorphing/

    Regards
    Konstantin


This discussion has been closed.