Re: cross product
- To: mathgroup at smc.vnet.net
- Subject: [mg35378] Re: [mg35367] cross product
- From: Garry Helzer <gah at math.umd.edu>
- Date: Wed, 10 Jul 2002 02:19:47 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On Tuesday, July 9, 2002, at 06:50 AM, Umby wrote: > Hi group, > > how can I achieve the CrossProduct of two 4*1 vectors (in homogeneous > coordinate)? > For instance: CrossProduct[{a,b,c,1},{d,e,f,1}] > Thanks in advance > > Umby You don't want to do that. Homogeneous coordinates represent points (little dots) not vectors (little arrows). Homogeneous coordinates do not obey the algebraic/geometric laws that vectors do. So what is it that you really want to do? The cross product is usually used to find a direction perpendicular to a piece of a plane. In the homogeneous context directions are handled by ideal points--points of the form {a,b,c,0}. Suppose that you have a piece of a surface and you want a perpendicular direction. To have a piece of a surface you must have at least 3 points: a triangle say. Now, to keep from confusing myself, I am going to change notation. When writing homogeneous coordinates I will put the "extra" coordinate first--{1,a,b,c} instead of {a,b,c,1}. Directions are given by coordinates of the form {0,a,b,c}. Let the 3-by-4 matrix M have the homogeneous coordinate vectors of the three points of your triangle for rows. Suppose that Minors[M,3] is {{a,b,c,d}}. A direction perpendicular to your triangle is {0,c,-b,a}. Given the directions of some light sources you could now use this direction to compute a color for your triangle. Remarks: 1. The homogeneous coordinates of the points need not begin with 1. 2. The list {a,b,c,d} gives the coordinates of the trivector representing the plane. 3. The computation uses only integer arithmetic. Garry Helzer Department of Mathematics University of Maryland 1303 Math Bldg College Park, MD 20742-4015