bcorrie@uvicctr.UUCP (Brian Corrie) (10/01/88)
Hello folks, I have a query for all of you trapped in the graphics Twilight Zone. Imagine a surface, a quadric surface, caught in ( du du du du du du du du ) THE TWILIGHT ZONE But seriously. I have the following problem : Given a quadric of the form Ax^2 + 2Bxy + 2Cxz + 2Dx + Ey^2 + 2Fyz + 2Gy + Hz^2 + 2Iz + J = 0 I store the coefficients in a 4x4 matrix. I believe this is a kind of standard since I have seen it in several journal articles. The matrix and the form of the equation is given below. | A B C D | | x | [x,y,z,1] * | B E F G | * | y | = 0 | C F H I | | z | | D G I J | | 1 | My problem is that I need to translate and rotate this quadric by a standard 3D translation. ( eg. Translate its center to origin ). It is my understanding that this can be done by using a standard 4x4 3D homogenous transformation matrix and its transpose or its inverse. It is done something like this Q' = T Q T' where Q is the quadratic matrix, Q' is the translated quadratic matrix, T and T' are the translation matrix and its transpose. So what is wrong???? I don't know whether to use T and its transpose, or T and its inverse. For a pure translation, I get a correct result if I use the inverse of T and the transpose of the inverse of T. Is this correct?? I need some confirmation or pointers. If Eric Haines is reading this, I got this from your "Essential Ray Tracing Algorithms" paper in the SIGGRAPH '87 Introduction to Ray Tracing course notes. Unfortunately, one of the articles he references is another course notes that I don't have, and the other is less than clear or contradicts the results that I have gotten. Well fellow netters, can you help me????? For anyone who cares, all this is hopefully going to allow me to ray trace quadric surfaces if I can ever get it to work. Thanks in advance for any help. Please try email first, and if you want I will try to send you info, although with the mailers and my lack of net knowledge, on top of my schedule, you will probably never here from me again ..... Why ? Because I have entered THE TWILIGHT ZONE... . . . . . ( du du du du du du du du ) -- Brian Corrie, University of Victoria, Victoria, B.C., Canada Under the most rigourously controlled conditions of pressure, temperature, volume, humidity and other variables, the organism will do as it damn well pleases. Don't worry, I know nothing of what I babble about.......
saponara@batcomputer.tn.cornell.edu (John Saponara) (10/05/88)
In article <511@uvicctr.UUCP> bcorrie@uvicctr.UUCP (Brian Corrie) writes: >Imagine a surface, a quadric surface, caught in ( du du du du du du du du ) > THE TWILIGHT ZONE > My problem is that I need to translate and rotate this quadric by a standard > 3D translation. ( eg. Translate its center to origin ). It is my > understanding that this can be done by using a standard 4x4 3D homogenous > transformation matrix and its transpose or its inverse. It is done > something like this > > Q' = T Q T' where Q is the quadratic matrix, Q' is the translated > quadratic matrix, T and T' are the translation matrix and its transpose. > > So what is wrong???? I don't know whether to use T and its transpose, or > T and its inverse. For a pure translation, I get a correct result if I use > the inverse of T and the transpose of the inverse of T. Is this correct?? > I need some confirmation or pointers. From Jim Blinn's "The Algebraic Properties of Homogeneous Second Order Surfaces": Q' = T* Q T*t [where T* is the adjoint (or inverse) of the transformation matrix, T*t the transpose of the adjoint] That is, to transform a quadric curve, multiply on the left by the adjoint (i.e. generalized inverse) of the point transformation and on the right by the transpose of the adjoint. By the way, does anyone know if this Blinn article has been reprinted anywhere but SIGGRAPH class notes (i.e. someplace more accessible)? If not, why not? Eric Haines (who does not walk and talk like John Saponara - I don't know why the computer thinks I'm him) NOTE: this account goes away soon, so write me at hpfcla!hpfcrs!eye!erich
spencer@spline.eecs.umich.edu (Spencer W. Thomas) (10/05/88)
In article <511@uvicctr.UUCP> bcorrie@uvicctr.UUCP (Brian Corrie) writes: >I have the following problem : Given a quadric of the form > Ax^2 + 2Bxy + 2Cxz + 2Dx + Ey^2 + 2Fyz + 2Gy + Hz^2 + 2Iz + J = 0 > > I store the coefficients in a 4x4 matrix. I believe this is a kind of > standard since I have seen it in several journal articles. The matrix and > the form of the equation is given below. > > | A B C D | | x | > [x,y,z,1] * | B E F G | * | y | = 0 > | C F H I | | z | > | D G I J | | 1 | > > My problem is that I need to translate and rotate this quadric by a standard > 3D translation. ( eg. Translate its center to origin ). It is my > understanding that this can be done by using a standard 4x4 3D homogenous > transformation matrix and its transpose or its inverse. Yup. Thats right. Suppose your transformation is T. I.e. [x,y,z,1] * T = [x',y',z',w'] Letting T(-1) is the inverse of T, you have [x,y,z,1] = [x',y',z',w'] * T(-1) Let Tt be the transpose of T, then Tt | x | = | x' | | y | | y' | | z | | z' | | 1 | | w' | and | x | = Tt(-1) * | x' | | y | | y' | | z | | z' | | 1 | | w' | Thus, | A B C D | | x | [x,y,z,1] * | B E F G | * | y | = 0 | C F H I | | z | | D G I J | | 1 | is the same as | A B C D | | x | [x',y',z',w'] * T(-1) * | B E F G | * Tt(-1) * | y | = 0 | C F H I | | z | | D G I J | | 1 | So your new quadric matrix must be T(-1) * M * Tt(-1). =Spencer (spencer@crim.eecs.umich.edu)
flip@pixar.UUCP (Flip Phillips) (10/06/88)
In article <511@uvicctr.UUCP> bcorrie@uvicctr.UUCP (Brian Corrie) writes: [...] >Imagine a surface, a quadric surface, caught in ( du du du du du du du du ) Sure, the music goes 'du du du du du' but if you're talking about a quadric surface shouldn't it go 'du dv du dv du dv du dv' ???? sorry, couldn't resist. -- Flip Phillips {sun | ucbvax}!pixar!flip Pixar - Marin County, California