![]() Home Overview FAQ Documentation Download Mailing List Geomview For Windows? Support Users Development Bug Reporting Contributing Contact Us Sponsors
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Closed REQ 5152]: Geomview questions
You could create a curve in Geomview using a VECT object, as in:
VECT
1 50 0 # one polyline, total of 50 vertices, no colors
50 # 50 vertices in first polyline
0 # 0 colors in first polyline
x1 y1 z1
x2 y2 z2
..
x50 y50 z50 # all the vertex positions
[In a separate note you asked about Bezier curves; we haven't implemented
any, only Bezier surfaces.]
We don't have a way to specify a plane given a point and normal vector;
you need to compute vertex coordinates, or a transformation from a
standard plane, or etc. This isn't too hard to do, though.
Suppose the plane's (unit) normal vector is n. You want to construct a set of
basis vectors in which n becomes, say, the Z axis. Pick some vector,
say u = [1 0 0], and choose its component orthogonal to n:
u perp n = u - n * (u dot n)
If this is zero, then pick a different u; otherwise, scale it to a unit
vector and call it the new basis' X axis. Construct the Y axis from the
vector cross product v = n cross u. Now, you can write an OOGL file:
{ INST
transform {
ux uy uz 0
vx vy vz 0
nx ny nz 0
px py pz 1
}
geom < square.quad
}
where ux,uy,uz are the x,y,z components of vector u, and so on,
and p is the point known to lie on the plane. This matrix maps the origin
to p, and maps vectors [1 0 0] and [0 1 0] to vectors lying in the plane.
Since square.quad is a unit square in the X-Y plane centered on the origin,
the above object should be what you want.
|
||
|
Home | Overview | FAQ | Documentation | Support | Download | Mailing List Windows? | Development | Bug Reporting | Contributing | Contact Us | Sponsors |
|||
|
site hosted by |
|||