<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Thema "Re: Probleme mit GROUP" in Programmierung</title>
    <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450461#M2924</link>
    <description>Vielleicht hilft dir folgendes Skript:&lt;BR /&gt;  &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;! XFORM Overview and Demo&lt;BR /&gt; ! Karl Ottenstein, Ottenstein Consulting Services&lt;BR /&gt; ! July 13, 2001&lt;BR /&gt; ! karl@r...&lt;BR /&gt; ! Sandpoint, Idaho USA&lt;BR /&gt; &lt;BR /&gt; ! Laurent asked about how the XFORM command is used in GDL.  This object&lt;BR /&gt; ! gives an overview, demo, and some references to textbooks at the end.&lt;BR /&gt; &lt;BR /&gt; ! Representing a point as a vector (x, y, z), one can apply matrix algebra&lt;BR /&gt; ! in order to move (translate), scale, or rotate that point.  According to&lt;BR /&gt; ! Foley and van Dam (ref at end), the concept of homogeneous coordinates&lt;BR /&gt; ! originated in geometry in 1946 by E. Maxwell at Cambridge.  Homogeneous&lt;BR /&gt; ! coordinates, and their transformations, extend a point vector with an&lt;BR /&gt; ! additional scale factor - so (x, y, z) becomes (x, y, z, 1)&lt;BR /&gt; &lt;BR /&gt; ! The homogeneous transformation matrix for translation only is:&lt;BR /&gt; !   1   0   0   0&lt;BR /&gt; !   0   1   0   0&lt;BR /&gt; !   0   0   1   0&lt;BR /&gt; !   dx  dy  dz  1&lt;BR /&gt; !&lt;BR /&gt; ! So, with dx, dy, dz as 3, 6, 9, similar to ADD 2, 4, 6:&lt;BR /&gt; !   1   0   0   0&lt;BR /&gt; !   0   1   0   0&lt;BR /&gt; !   0   0   1   0&lt;BR /&gt; !   2   4   6   1&lt;BR /&gt; !&lt;BR /&gt; ! Multiply a point (x, y, z, 1) in homogenous coordinate space&lt;BR /&gt; ! (the extra 1) with the above matrix:  pt * M and you get&lt;BR /&gt; ! (x+2, y+4, z+6, 1) - a "translated" (shifted) point.&lt;BR /&gt; !&lt;BR /&gt; ! Read DOWN the matrix columns as entering data for the XFORM, and&lt;BR /&gt; ! leave off the last column of the 4x4 matrix above.&lt;BR /&gt; &lt;BR /&gt; if jmp and jmp&amp;lt;5 then goto jmp*10&lt;BR /&gt; BLOCK 1, 4, 8&lt;BR /&gt; 	XFORM 1, 0, 0, 2,&lt;BR /&gt; 		0, 1, 0, 4,&lt;BR /&gt; 		0, 0, 1, 6&lt;BR /&gt; ! Make an asymmetric block in order to see what's going on&lt;BR /&gt; BLOCK 1, 4, 8&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; 10:&lt;BR /&gt; ! The homogeneous transformation matrix for scaling only is:&lt;BR /&gt; !   sx  0   0   0&lt;BR /&gt; !   0   sy  0   0&lt;BR /&gt; !   0   0   sz  0&lt;BR /&gt; !   0   0   0   1&lt;BR /&gt; !&lt;BR /&gt; ! So, with sx, sy, sz as 2, .5, .5, similar to MUL 2, 0.5, 0.5&lt;BR /&gt; ! you have:&lt;BR /&gt; !   2   0   0   0&lt;BR /&gt; !   0   0.5 0   0&lt;BR /&gt; !   0   0   0.5 0&lt;BR /&gt; !   0   0   0   1&lt;BR /&gt; !&lt;BR /&gt; ! Multiply a point (x, y, z, 1) in homogenous coordinate space&lt;BR /&gt; ! by the above matrix:  pt * M and you get&lt;BR /&gt; ! (x*2, y*0.5, z*.05, 1)&lt;BR /&gt; !&lt;BR /&gt; ! Read DOWN the matrix columns as entering data for the XFORM, and&lt;BR /&gt; ! leave off the last column of the 4x4 matrix above.&lt;BR /&gt; &lt;BR /&gt; goto 20&lt;BR /&gt; 	XFORM 2, 0, 0, 0,&lt;BR /&gt; 		0, 0.5, 0, 0,&lt;BR /&gt; 		0, 0, 0.5, 0&lt;BR /&gt; ! Make a sphere in order to see what's going on&lt;BR /&gt; SPHERE 0.5&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; 20:&lt;BR /&gt; ! Before we proceed to rotation - let's combine translation and scaling,&lt;BR /&gt; ! using the same numbers as above.  Notice that the XFORM below replaces&lt;BR /&gt; ! one ADD and one MUL at this point:&lt;BR /&gt; &lt;BR /&gt; goto 30:&lt;BR /&gt; ! Translate and scale together&lt;BR /&gt; block 1,1,1  !SPHERE 2&lt;BR /&gt; 	XFORM 2, 0, 0, 2,&lt;BR /&gt; 		0, 0.5, 0, 4,&lt;BR /&gt; 		0, 0, 0.5, 6&lt;BR /&gt; ! Make a sphere in order to see what's going on&lt;BR /&gt; block 1,1,1  !SPHERE 2&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; !The transformation matrix for rotation "a" degrees about the Z axis is:&lt;BR /&gt; !   cos(a)  sin(a)  0       0&lt;BR /&gt; !   -sin(a) cos(a)  0       0&lt;BR /&gt; !   0       0       1       0&lt;BR /&gt; !   0       0       0       1&lt;BR /&gt; !For "a" degrees about the X axis:&lt;BR /&gt; !   1       0       0       0&lt;BR /&gt; !   0       cos(a)  sin(a)  0&lt;BR /&gt; !   0       -sin(a) cos(a)  0&lt;BR /&gt; !   0       0       0       1&lt;BR /&gt; !And, for "a" degrees about the Y axis:&lt;BR /&gt; !   cos(a)  0       -sin(a) 0&lt;BR /&gt; !   0       1       0       0&lt;BR /&gt; !   sin(a)  0       cos(a)  0&lt;BR /&gt; !   0       0       0       1&lt;BR /&gt; &lt;BR /&gt; 30:&lt;BR /&gt; ! So...let's rotate a block&lt;BR /&gt; ! about the Y axis 30 degrees...same as ROTY 30&lt;BR /&gt; &lt;BR /&gt; goto 40&lt;BR /&gt; &lt;BR /&gt; ang = 30&lt;BR /&gt; cosa = cos(ang)&lt;BR /&gt; sina = sin(ang)&lt;BR /&gt; &lt;BR /&gt; 	XFORM cosa, 0, sina, 0,&lt;BR /&gt; 		0, 1, 0, 0,&lt;BR /&gt; 		-sina, 0, cosa, 0&lt;BR /&gt; ! Make an asymmetric block in order to see what's going on&lt;BR /&gt; BLOCK 1, 4, 8&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : END&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; 40:&lt;BR /&gt; ang=40&lt;BR /&gt; XFORM 1,0,0,0,&lt;BR /&gt;       0,1,0,0,&lt;BR /&gt;       TAN(ang),0,1,0&lt;BR /&gt; &lt;BR /&gt; block 1,1,1 !CYLIND 0.5,1&lt;BR /&gt; DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; !&lt;BR /&gt; ! Note that the matrices are combined by multiplying them together,&lt;BR /&gt; ! giving a new 4x4 transformation matrix. Any number of transformations&lt;BR /&gt; ! can be combined into one final matrix - represented by a single&lt;BR /&gt; ! GDL XFORM.  Email me if you want me to post an explanation and&lt;BR /&gt; ! example.&lt;BR /&gt; !&lt;BR /&gt; ! This is probably not that useful for most GDL programmers, but&lt;BR /&gt; ! would be very handy for API developers.  (Picture an add-on where the&lt;BR /&gt; ! user has sliders to rotate, scale and translate an object.  The final&lt;BR /&gt; ! settings could be saved as a single XFORM.)&lt;BR /&gt; &lt;BR /&gt; ! References&lt;BR /&gt; !&lt;BR /&gt; ! These books are dated, as am I.  No doubt there are newer additions,&lt;BR /&gt; ! and even other, newer books out there now.  Two of them were&lt;BR /&gt; ! classics, and I expect still are.&lt;BR /&gt; !&lt;BR /&gt; ! Foley, J. D. and van Dam, A. Fundamentals of Interactive Computer&lt;BR /&gt; ! Graphics.  Addison-Wesley (1982) 664 pages.  This was THE book to&lt;BR /&gt; ! have - there must be a newer edition.&lt;BR /&gt; ! ISBN for this edition 0-201-14468-9.&lt;BR /&gt; !&lt;BR /&gt; ! Giloi, Wolfgang K. Interactive Computer Graphics.&lt;BR /&gt; ! Prentice-Hall (1978) 354 pages.&lt;BR /&gt; !&lt;BR /&gt; ! Harrington, Steven.  Computer Graphics: A Programming Approach.&lt;BR /&gt; ! McGraw-Hill (1983) 448 pages.&lt;BR /&gt; !&lt;BR /&gt; ! Newman, William M. and Sproull, Robert F. Principles of&lt;BR /&gt; ! Interactive Computer Graphics, 2nd Edition.&lt;BR /&gt; ! McGraw-Hill (1979) 541 pages.  This was the bible for graphics&lt;BR /&gt; ! when I was in school.&lt;BR /&gt; !&lt;BR /&gt; ! Karl Ottenstein, July 2001.benötigt Parameter JMP als numerischen mit Werebereich 1 bis 4.</description>
    <pubDate>Thu, 29 Jul 2004 22:23:00 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2004-07-29T22:23:00Z</dc:date>
    <item>
      <title>Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450457#M2920</link>
      <description>Kann mir einer sagen wieso ich beim folgenden Beispiel in ArchiCAD einen Gruppenbearbeitungs Fehler bekomm ?&lt;BR /&gt; &lt;BR /&gt; Achja, nebenbei an Graphisoft:&lt;BR /&gt; Da ist ein rechtschreibfehler drin &lt;!-- s:-) --&gt;&lt;span class="lia-unicode-emoji" title=":leicht_lächelndes_Gesicht:"&gt;🙂&lt;/span&gt;&lt;!-- s:-) --&gt;&lt;BR /&gt; da steht in der Fehlermeldung&lt;BR /&gt; "Gruppenbearbeiotungs Fehler" nicht&lt;BR /&gt; "Gruppenbearbeitungs Fehler"&lt;BR /&gt; &lt;BR /&gt; Wenn ich die Beiden gruppen nicht mit addgroup zusammen addiere, sondern einzeln mit placegroup anzeige passt alles.&lt;BR /&gt; &lt;BR /&gt; Ich muss aber später noch was abziehen, daher muss ich addieren.&lt;BR /&gt; &lt;BR /&gt; Achso bevor ihr fragt, ja ich steh auf matrizen &lt;!-- s;-) --&gt;&lt;span class="lia-unicode-emoji" title=":zwinkerndes_Gesicht:"&gt;😉&lt;/span&gt;&lt;!-- s;-) --&gt;&lt;BR /&gt; &lt;BR /&gt; GROUP "result"&lt;BR /&gt; ENDGROUP&lt;BR /&gt; result = "result"&lt;BR /&gt; XFORM 1, 0, 0, 280,&lt;BR /&gt; 0, 1, 0, 2072.5,&lt;BR /&gt; 0, 0, 1, 200.5&lt;BR /&gt; GROUP "Teil1"&lt;BR /&gt;     !push matrix to stack&lt;BR /&gt;     XFORM     0, 0, 1, 0,&lt;BR /&gt;     0, 1, 0, 0,&lt;BR /&gt;     -1, 0, 0, 0&lt;BR /&gt;     EXTRUDE 15, 0, 0, 1820, 63, &lt;BR /&gt;         -20, 27, 1,&lt;BR /&gt;         -20, 17, 1, &lt;BR /&gt;         -18, 17, 1, &lt;BR /&gt;         -18, -3, 1, &lt;BR /&gt;         -20, -3, 1, &lt;BR /&gt;         -20, -13, 1, &lt;BR /&gt;         -15, -13, 1, &lt;BR /&gt;         -15, 0, 1, &lt;BR /&gt;         0, 0, 1, &lt;BR /&gt;         0, 27, 1, &lt;BR /&gt;         -3, 27, 1, &lt;BR /&gt;         -3, 3, 1, &lt;BR /&gt;         -15, 3, 1, &lt;BR /&gt;         -15, 27, 1, &lt;BR /&gt;         -20, 27, -1&lt;BR /&gt;     !delete matrix from stack&lt;BR /&gt;     DEL 0&lt;BR /&gt; ENDGROUP&lt;BR /&gt; result = ADDGROUP(result,"Teil1")&lt;BR /&gt; GROUP "Teil2"&lt;BR /&gt;     !push matrix to stack&lt;BR /&gt;     XFORM     0, 0, 1, 1800,&lt;BR /&gt;     -1, 0, 0, -50,&lt;BR /&gt;     0, -1, 0, 700&lt;BR /&gt;     REVOLVE 14, 90, 127, &lt;BR /&gt;         -77, 680, 1,&lt;BR /&gt;         -67, 680, 1,&lt;BR /&gt;         -67, 682, 1,&lt;BR /&gt;         -47, 682, 1,&lt;BR /&gt;         -47, 680, 1,&lt;BR /&gt;         -37, 680, 1,&lt;BR /&gt;         -37, 685, 1,&lt;BR /&gt;         -50, 685, 1,&lt;BR /&gt;         -50, 700, 1,&lt;BR /&gt;         -77, 700, 1,&lt;BR /&gt;         -77, 697, 1,&lt;BR /&gt;         -53, 697, 1,&lt;BR /&gt;         -53, 685, 1,&lt;BR /&gt;         -77, 685, 1&lt;BR /&gt;     !delete matrix from stack&lt;BR /&gt;     DEL 0&lt;BR /&gt; ENDGROUP&lt;BR /&gt; result = ADDGROUP(result,"Teil2")&lt;BR /&gt; PLACEGROUP result</description>
      <pubDate>Thu, 29 Jul 2004 09:26:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450457#M2920</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-07-29T09:26:00Z</dc:date>
    </item>
    <item>
      <title>Re: Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450458#M2921</link>
      <description>Wenn Du das XFORM aus der Gruppe herausnimmts, gibt es keinen Fehler mehr.&lt;BR /&gt; Da ich noch nie mit XFORM gearbeitet habe, würde mich interessieren, was Du damit erreichen willst.</description>
      <pubDate>Thu, 29 Jul 2004 10:09:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450458#M2921</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-07-29T10:09:00Z</dc:date>
    </item>
    <item>
      <title>Re: Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450459#M2922</link>
      <description>Mit XForm kann man eine matrix angeben.&lt;BR /&gt; Also verschiebungen und Rotationen einbauen.&lt;BR /&gt; &lt;BR /&gt; Quasi ein &lt;BR /&gt; rotx,roty,rotz,addx,addy,addz&lt;BR /&gt; &lt;BR /&gt; in einem &lt;!-- s:-) --&gt;&lt;span class="lia-unicode-emoji" title=":leicht_lächelndes_Gesicht:"&gt;🙂&lt;/span&gt;&lt;!-- s:-) --&gt;&lt;BR /&gt; &lt;BR /&gt; Wenn man das rausnimmt stimmt das Ergebnis nichtmehr&lt;BR /&gt;  &lt;BR /&gt;  &lt;SMALL&gt;[ 29. Juli 2004, 12:24: Beitrag editiert von: Momo ]&lt;/SMALL&gt;</description>
      <pubDate>Thu, 29 Jul 2004 10:16:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450459#M2922</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-07-29T10:16:00Z</dc:date>
    </item>
    <item>
      <title>Re: Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450460#M2923</link>
      <description>Das würde mich aiuch heftig interessieren... kannst Du es mal näher erklären?&lt;BR /&gt; &lt;BR /&gt; Gruß, az</description>
      <pubDate>Thu, 29 Jul 2004 20:03:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450460#M2923</guid>
      <dc:creator>andreaszeike</dc:creator>
      <dc:date>2004-07-29T20:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450461#M2924</link>
      <description>Vielleicht hilft dir folgendes Skript:&lt;BR /&gt;  &amp;lt;/font&amp;gt;&amp;lt;blockquote&amp;gt;&amp;lt;font size="1" face="Verdana, Helvetica, sans-serif"&amp;gt;Code:&amp;lt;/font&amp;gt;&amp;lt;hr /&amp;gt;&amp;lt;pre style="font-size:x-small; font-family: monospace;"&amp;gt;! XFORM Overview and Demo&lt;BR /&gt; ! Karl Ottenstein, Ottenstein Consulting Services&lt;BR /&gt; ! July 13, 2001&lt;BR /&gt; ! karl@r...&lt;BR /&gt; ! Sandpoint, Idaho USA&lt;BR /&gt; &lt;BR /&gt; ! Laurent asked about how the XFORM command is used in GDL.  This object&lt;BR /&gt; ! gives an overview, demo, and some references to textbooks at the end.&lt;BR /&gt; &lt;BR /&gt; ! Representing a point as a vector (x, y, z), one can apply matrix algebra&lt;BR /&gt; ! in order to move (translate), scale, or rotate that point.  According to&lt;BR /&gt; ! Foley and van Dam (ref at end), the concept of homogeneous coordinates&lt;BR /&gt; ! originated in geometry in 1946 by E. Maxwell at Cambridge.  Homogeneous&lt;BR /&gt; ! coordinates, and their transformations, extend a point vector with an&lt;BR /&gt; ! additional scale factor - so (x, y, z) becomes (x, y, z, 1)&lt;BR /&gt; &lt;BR /&gt; ! The homogeneous transformation matrix for translation only is:&lt;BR /&gt; !   1   0   0   0&lt;BR /&gt; !   0   1   0   0&lt;BR /&gt; !   0   0   1   0&lt;BR /&gt; !   dx  dy  dz  1&lt;BR /&gt; !&lt;BR /&gt; ! So, with dx, dy, dz as 3, 6, 9, similar to ADD 2, 4, 6:&lt;BR /&gt; !   1   0   0   0&lt;BR /&gt; !   0   1   0   0&lt;BR /&gt; !   0   0   1   0&lt;BR /&gt; !   2   4   6   1&lt;BR /&gt; !&lt;BR /&gt; ! Multiply a point (x, y, z, 1) in homogenous coordinate space&lt;BR /&gt; ! (the extra 1) with the above matrix:  pt * M and you get&lt;BR /&gt; ! (x+2, y+4, z+6, 1) - a "translated" (shifted) point.&lt;BR /&gt; !&lt;BR /&gt; ! Read DOWN the matrix columns as entering data for the XFORM, and&lt;BR /&gt; ! leave off the last column of the 4x4 matrix above.&lt;BR /&gt; &lt;BR /&gt; if jmp and jmp&amp;lt;5 then goto jmp*10&lt;BR /&gt; BLOCK 1, 4, 8&lt;BR /&gt; 	XFORM 1, 0, 0, 2,&lt;BR /&gt; 		0, 1, 0, 4,&lt;BR /&gt; 		0, 0, 1, 6&lt;BR /&gt; ! Make an asymmetric block in order to see what's going on&lt;BR /&gt; BLOCK 1, 4, 8&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; 10:&lt;BR /&gt; ! The homogeneous transformation matrix for scaling only is:&lt;BR /&gt; !   sx  0   0   0&lt;BR /&gt; !   0   sy  0   0&lt;BR /&gt; !   0   0   sz  0&lt;BR /&gt; !   0   0   0   1&lt;BR /&gt; !&lt;BR /&gt; ! So, with sx, sy, sz as 2, .5, .5, similar to MUL 2, 0.5, 0.5&lt;BR /&gt; ! you have:&lt;BR /&gt; !   2   0   0   0&lt;BR /&gt; !   0   0.5 0   0&lt;BR /&gt; !   0   0   0.5 0&lt;BR /&gt; !   0   0   0   1&lt;BR /&gt; !&lt;BR /&gt; ! Multiply a point (x, y, z, 1) in homogenous coordinate space&lt;BR /&gt; ! by the above matrix:  pt * M and you get&lt;BR /&gt; ! (x*2, y*0.5, z*.05, 1)&lt;BR /&gt; !&lt;BR /&gt; ! Read DOWN the matrix columns as entering data for the XFORM, and&lt;BR /&gt; ! leave off the last column of the 4x4 matrix above.&lt;BR /&gt; &lt;BR /&gt; goto 20&lt;BR /&gt; 	XFORM 2, 0, 0, 0,&lt;BR /&gt; 		0, 0.5, 0, 0,&lt;BR /&gt; 		0, 0, 0.5, 0&lt;BR /&gt; ! Make a sphere in order to see what's going on&lt;BR /&gt; SPHERE 0.5&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; 20:&lt;BR /&gt; ! Before we proceed to rotation - let's combine translation and scaling,&lt;BR /&gt; ! using the same numbers as above.  Notice that the XFORM below replaces&lt;BR /&gt; ! one ADD and one MUL at this point:&lt;BR /&gt; &lt;BR /&gt; goto 30:&lt;BR /&gt; ! Translate and scale together&lt;BR /&gt; block 1,1,1  !SPHERE 2&lt;BR /&gt; 	XFORM 2, 0, 0, 2,&lt;BR /&gt; 		0, 0.5, 0, 4,&lt;BR /&gt; 		0, 0, 0.5, 6&lt;BR /&gt; ! Make a sphere in order to see what's going on&lt;BR /&gt; block 1,1,1  !SPHERE 2&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; !The transformation matrix for rotation "a" degrees about the Z axis is:&lt;BR /&gt; !   cos(a)  sin(a)  0       0&lt;BR /&gt; !   -sin(a) cos(a)  0       0&lt;BR /&gt; !   0       0       1       0&lt;BR /&gt; !   0       0       0       1&lt;BR /&gt; !For "a" degrees about the X axis:&lt;BR /&gt; !   1       0       0       0&lt;BR /&gt; !   0       cos(a)  sin(a)  0&lt;BR /&gt; !   0       -sin(a) cos(a)  0&lt;BR /&gt; !   0       0       0       1&lt;BR /&gt; !And, for "a" degrees about the Y axis:&lt;BR /&gt; !   cos(a)  0       -sin(a) 0&lt;BR /&gt; !   0       1       0       0&lt;BR /&gt; !   sin(a)  0       cos(a)  0&lt;BR /&gt; !   0       0       0       1&lt;BR /&gt; &lt;BR /&gt; 30:&lt;BR /&gt; ! So...let's rotate a block&lt;BR /&gt; ! about the Y axis 30 degrees...same as ROTY 30&lt;BR /&gt; &lt;BR /&gt; goto 40&lt;BR /&gt; &lt;BR /&gt; ang = 30&lt;BR /&gt; cosa = cos(ang)&lt;BR /&gt; sina = sin(ang)&lt;BR /&gt; &lt;BR /&gt; 	XFORM cosa, 0, sina, 0,&lt;BR /&gt; 		0, 1, 0, 0,&lt;BR /&gt; 		-sina, 0, cosa, 0&lt;BR /&gt; ! Make an asymmetric block in order to see what's going on&lt;BR /&gt; BLOCK 1, 4, 8&lt;BR /&gt; &lt;BR /&gt; 	DEL 1 : END&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; 40:&lt;BR /&gt; ang=40&lt;BR /&gt; XFORM 1,0,0,0,&lt;BR /&gt;       0,1,0,0,&lt;BR /&gt;       TAN(ang),0,1,0&lt;BR /&gt; &lt;BR /&gt; block 1,1,1 !CYLIND 0.5,1&lt;BR /&gt; DEL 1 : end&lt;BR /&gt; &lt;BR /&gt; !&lt;BR /&gt; ! Note that the matrices are combined by multiplying them together,&lt;BR /&gt; ! giving a new 4x4 transformation matrix. Any number of transformations&lt;BR /&gt; ! can be combined into one final matrix - represented by a single&lt;BR /&gt; ! GDL XFORM.  Email me if you want me to post an explanation and&lt;BR /&gt; ! example.&lt;BR /&gt; !&lt;BR /&gt; ! This is probably not that useful for most GDL programmers, but&lt;BR /&gt; ! would be very handy for API developers.  (Picture an add-on where the&lt;BR /&gt; ! user has sliders to rotate, scale and translate an object.  The final&lt;BR /&gt; ! settings could be saved as a single XFORM.)&lt;BR /&gt; &lt;BR /&gt; ! References&lt;BR /&gt; !&lt;BR /&gt; ! These books are dated, as am I.  No doubt there are newer additions,&lt;BR /&gt; ! and even other, newer books out there now.  Two of them were&lt;BR /&gt; ! classics, and I expect still are.&lt;BR /&gt; !&lt;BR /&gt; ! Foley, J. D. and van Dam, A. Fundamentals of Interactive Computer&lt;BR /&gt; ! Graphics.  Addison-Wesley (1982) 664 pages.  This was THE book to&lt;BR /&gt; ! have - there must be a newer edition.&lt;BR /&gt; ! ISBN for this edition 0-201-14468-9.&lt;BR /&gt; !&lt;BR /&gt; ! Giloi, Wolfgang K. Interactive Computer Graphics.&lt;BR /&gt; ! Prentice-Hall (1978) 354 pages.&lt;BR /&gt; !&lt;BR /&gt; ! Harrington, Steven.  Computer Graphics: A Programming Approach.&lt;BR /&gt; ! McGraw-Hill (1983) 448 pages.&lt;BR /&gt; !&lt;BR /&gt; ! Newman, William M. and Sproull, Robert F. Principles of&lt;BR /&gt; ! Interactive Computer Graphics, 2nd Edition.&lt;BR /&gt; ! McGraw-Hill (1979) 541 pages.  This was the bible for graphics&lt;BR /&gt; ! when I was in school.&lt;BR /&gt; !&lt;BR /&gt; ! Karl Ottenstein, July 2001.benötigt Parameter JMP als numerischen mit Werebereich 1 bis 4.</description>
      <pubDate>Thu, 29 Jul 2004 22:23:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450461#M2924</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-07-29T22:23:00Z</dc:date>
    </item>
    <item>
      <title>Re: Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450462#M2925</link>
      <description>...ach so!! Danke, Ove!! (Das Beispiel funzt allerdings nur, wenn man die goto 20, 30 und 40 herauslöscht)&lt;BR /&gt; &lt;BR /&gt; Gruß, az</description>
      <pubDate>Fri, 30 Jul 2004 06:20:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450462#M2925</guid>
      <dc:creator>andreaszeike</dc:creator>
      <dc:date>2004-07-30T06:20:00Z</dc:date>
    </item>
    <item>
      <title>Re: Probleme mit GROUP</title>
      <link>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450463#M2926</link>
      <description>&amp;lt;OBJECT ID="GDLCtl" codebase="http://www.gdlcentral.com/bin/files/GDLCtl.cab#version=1,2,5,178" WIDTH="200" HEIGHT="200" CLASSID="CLSID:64D9B72C-E42A-490e-9181-221E1E035A14"&amp;gt;&amp;lt;PARAM NAME="GdllistTxt" VALUE=""&amp;gt;&amp;lt;PARAM NAME="SRC" VALUE="http://www.gdl-talk.de/objekte/XFORM_Demo.gsm"&amp;gt;&amp;lt;embed name='GDLCtl' width='200' height='200' Src='http://www.gdl-talk.de/objekte/XFORM_Demo.gsm' GdlListTxt=''&amp;gt;&amp;lt;/OBJECT&amp;gt;&lt;BR /&gt; Hier ein XFORM-Testobjekt, bei dem man jeden Wert als Parameter eingeben kann, um zu sehen, welche Auswirkungen das hat.&lt;BR /&gt; Am Interessansten sind die Winkelverschiebungen, weil man damit ein Objekt Diagonal verzerren kann.&lt;BR /&gt; Das Strecken und das Verschieben funktioniert ja auch mit MUL und ADD.</description>
      <pubDate>Sat, 31 Jul 2004 08:27:00 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/Programmierung/Probleme-mit-GROUP/m-p/450463#M2926</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2004-07-31T08:27:00Z</dc:date>
    </item>
  </channel>
</rss>

