go to www.geomview.org home page



Mailing List

Geomview For Windows?


Bug Reporting
Contact Us



Site Search



About the software@geom archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Closed REQ 5152]: Geomview questions

  • To: software@geom
  • Subject: Re: [Closed REQ 5152]: Geomview questions
  • From: "Stuart Levy" <slevy>
  • Date: Sun, 20 Nov 94 16:02:07 -0600

You could create a curve in Geomview using a VECT object, as in:

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:

  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
SourceForge Logo