POV-Ray : Newsgroups : povray.advanced-users : How to find the equation of a plane from three points? : Re: How to find the equation of a plane from three points? Server Time
2 Nov 2024 07:27:32 EDT (-0400)
  Re: How to find the equation of a plane from three points?  
From: David Fontaine
Date: 21 Feb 2000 13:41:36
Message: <38B1865A.9F814CCB@faricy.net>
Serge LAROCQUE wrote:

> > In case you were wondering, I was looking at the icosahedral stellations and
> > read that all the lines dividing the plane are the intersections with the
> > planes of the other faces on the icosahedron... Now it should only take me
> > five years to work out all the trig...

Calculate all the points of the icosahedron (with one face being parallel to x-z
plane) and store them in p1-p12 on the TI-89. Shortcut: calculate two points,
rotate them 120 and 240 around y to get the other points on that hemisphere, and
reflect those about the origin to get the other hemisphere.
Now here comes my fancy user-defined function (psuedo-code here):

 Input pa,pb,pc
 v1=pa-pb   v2=pc-pb
 <coefficients>c={v1 cross v2[1], v1 cross v2[2], v1 cross v2[3], (v1 cross v2)
dot pa}
 // Ax+By+Cz=D and y=<dist. from origin to center of any face> fd
 // therefore z=-(A/C)x+(D-B(fd))/C
 return {-c[1]/c[3],(c[4]-c[2]*fd)/c[3]}
 // return[1] = a, return[2] = b, line is y=ax+b

store all these coefficients in l1[1],l1[2]...l18[1],l18[2]
Then another fancy user-defined function to solve y=Ax+B and y=Cx+D (the built-in
solver does not output the result in a readily usable format, you would have to
remove the "x=", "and", and "y=" parts)
x=(-B-D)/(A-C) and y=(AD-BC)/(A-C)
There, you have all your points of intersection :-)

--
___     ______________________________________________________
 | \     |_                 <dav### [at] faricynet> <ICQ 55354965>
 |_/avid |ontaine               http://www.faricy.net/~davidf/

"Sitting on a cornflake, waiting for the van to come" -Beatles


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.