<?xml version="1.0" encoding="UTF-8"?>
	<rss version="2.0"
		xmlns:content="http://purl.org/rss/1.0/modules/content/"
		xmlns:wfw="http://wellformedweb.org/CommentAPI/"
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xmlns:atom="http://www.w3.org/2005/Atom"

			>

	<channel>
		<title>Cycling 74  &#187;  Topic: Draw a cylinder between two points (multiple times per frame)</title>
		<atom:link href="http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/feed" rel="self" type="application/rss+xml" />
		<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/feed</link>
		<description></description>
		<pubDate>Mon, 17 Jun 2013 22:53:48 +0000</pubDate>
		<generator>http://bbpress.org/?v=2.2.4</generator>
		<language></language>

		
														
					
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-55177</guid>
					<title><![CDATA[Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-55177</link>
					<pubDate>Fri, 25 Feb 2011 04:55:08 +0000</pubDate>
					<dc:creator>bferns</dc:creator>

					<description>
						<![CDATA[
						<p>So I&#8217;m working with OSCeleton and trying to make a very rough 3d volume of the body. I&#8217;m not particularly hot at low-level 3d or maths, which this seems to require in abundance.</p>
<p>So far I have a system that takes two points &#8211; say the right hand [A] and right elbow [B]. It finds the mid-point between the two, and sets that as the draw position. I then minus A from B to find the relative distance in cartesian space, then I run a 3dcartopol object on it to extract the azimuth, elevation and distance. I feed all those numbers to a sketch object in the hope it will draw a cylinder at that position and orientation, using these gl commands:</p>
<pre><code>reset
glclearcolor 0. 0. 0. 1.
glclear
glrotate $6 1 0 0
glrotate $7 0 1 0
moveto $1 $2 $3
cylinder $4 $4 $5
glcolor 0.5 0.5 0.5 1.
//glbindtexture $9</code></pre><p>I see a cylinder that acts roughly right, but often does strange things like flipping around its axis all of a sudden, or (as the user moves right to left) starting at the right of the screen, tracking them to the center, then returning to the right.</p>
<p>Trying to use multiple cylinders results in a spastically twitching, flickering heap. I&#8217;m way, way, way over my head already (and frankly surpised theres anything on screen). So I thought I&#8217;d ask if there was anything wrong with the basic concept or openGL before getting into the specifics of the patch. </p>
<p>I&#8217;ve read the relavent redbook sections, but nothing seems to be helping (the current gl commands are just one configuration of many I&#8217;ve tried that all draw, but dont achieve the result). I&#8217;ve pushed and popped matrices but it didn&#8217;t seem to achieve much so I removed those lines.</p>
<p>For anyone curious, the 3dcartopol object I used was <a href="http://www.maxobjects.com/?v=objects&#038;id_objet=776&#038;PHPSESSID=ad2a22436728f65b8dc4b138b589fdde" rel="nofollow">http://www.maxobjects.com/?v=objects&#038;id_objet=776&#038;PHPSESSID=ad2a22436728f65b8dc4b138b589fdde</a> . before that I was using my own system with a series of Max&#8217;s own cartopol objects, but it got my head in a mess trying to figure out how the 3 values cancelled each other out into only 2 rotations and 1 distance.</p>
<p>I&#8217;m also currently playing with cosm.nav but I can&#8217;t seem to get anything out of it yet (it requiring yet another mathematical process to get 4(?) rotational values). <a href="http://www.allosphere.ucsb.edu/cosm/index.html" rel="nofollow">http://www.allosphere.ucsb.edu/cosm/index.html</a></p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198590</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198590</link>
					<pubDate>Mon, 28 Feb 2011 18:00:47 +0000</pubDate>
					<dc:creator>Rob Ramirez</dc:creator>

					<description>
						<![CDATA[
						<p>i would start with simple spheres at the joint positions, and a simple line connecting the joints.<br />
if that looks as expected, you can move on to more complicated geometry.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198591</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198591</link>
					<pubDate>Tue, 01 Mar 2011 07:29:40 +0000</pubDate>
					<dc:creator>bferns</dc:creator>

					<description>
						<![CDATA[
						<p>Thanks for the suggestion, but that was a step I passed through on the way to this patch (using circles rather than spheres). </p>
<p>Unfortunately lines are far simpler to define; using a start-point and end-point, I guess since the &#8216;roll&#8217; axis doesn&#8217;t matter on whats essentially a 2d object. Adding the full number of axes of rotation is whats causing the brainial short-circuit.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198592</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198592</link>
					<pubDate>Tue, 07 Jun 2011 05:24:06 +0000</pubDate>
					<dc:creator>bferns</dc:creator>

					<description>
						<![CDATA[
						<p>I&#8217;ve come back to this problem months later, and have the rotation a bit more figured out, but I&#8217;m still stuck getting the right things on-screen. </p>
<p>At the moment the main issue seems to be the translation (although my test situation is simple enough that it could be hiding underlying rotation problems)</p>
<p>For each cylinder, the following runs:</p>
<pre><code><br />
glmatrixmode modelview [doesn&#39;t seem to make any difference]<br />
glpushmatrix<br />
gltranslate $1 $2 $3 [mid-point between 2 coordinates]<br />
glcolor 0.7 0.7 0.7 1.<br />
glrotate $4 0 1 0 [Y-axis rotation from polar coordinates]<br />
glrotate $5 1 0 0 [X-axis rotation from polar coordinates]<br />
cylinder $7 $7 $6 [radius of each end and length from polar distance]<br />
glpopmatrix<br /></code></pre><p>Then after all the cylinders, before the frame is rendered:</p>
<pre><code><br />
glclear<br />
reset<br /></code></pre><p>I have created a simple test situation, with points at</p>
<pre><code><br />
0,0,1<br />
0,1,0<br />
1,0,0<br />
0,0,0,<br /></code></pre><p>I join them into 4 pairs, and find the polar coordinates. This should result in a neatly-aligned right-angle triangle on the positive XY plane at 0, and a line stretching down the Z axis to 1.</p>
<p>Instead I see:</p>
<p><a href="http://i.imgur.com/hQirD.jpg" rel="nofollow">http://i.imgur.com/hQirD.jpg</a></p>
<p>Now the rotation I suspect I can fix later by flipping some numbers/coordinates, but I can&#8217;t figure out whats happening with the points where the cylinders intersect.</p>
<p>I think there might be some &#8216;drift&#8217; coming from each translation, but I don&#8217;t know how. Theres a command I think is Max MSP only (moveto) I can use instead of translate, but it results in a similar situation (only with everything closer together).</p>
<p>The &#8216;z&#8217; axis cylinder appears to be in a weird spot that is level with the midpoint of the hypoteneuse.</p>
<p>Thats essentially a summary of the problem, but I&#8217;ll include some more information for anyone who&#8217;s curious:</p>
<p>The coordinates are as follows:</p>
<pre><code><br />
01 = 0.000 0.100 0.000<br />
02 = 0.000 0.000 0.000<br />
03 = 0.100 0.000 0.000<br />
04 = 0.000 0.000 0.100<br /></code></pre><p>paired by this list (the intial 0s on each are just because they&#8217;re stored in a 2d matrix)</p>
<pre><code><br />
0 1  0 2,<br />
0 2  0 3,<br />
0 2  0 4,<br />
0 1  0 3<br /></code></pre><p>Run through a cartesian to polar coordinates object (output example):</p>
<p>90. -0. 0.1 [azimuth, elevation, distance]</p>
<p>which is fed into the gl commands above.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198593</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198593</link>
					<pubDate>Tue, 07 Jun 2011 14:36:57 +0000</pubDate>
					<dc:creator>bferns</dc:creator>

					<description>
						<![CDATA[
						<p>Never mind &#8211; I found I had connected a vexpr wrong so it was running before it received its righthand input, causing the slight misalignment.</p>
<p>Now I&#8217;m on the next issue, which is how to keep a texture on a cylinder facing forwards, when I cant really see how to lock the rotation along the axis  of the cylinder. As it is, when nearly vertical the rotation slides around a lot (invisibly, unless there is a texture on it to watch).</p>
<p>Edit: after some sketching I&#8217;ve realised there&#8217;s no &#8216;correct&#8217;rotation when you&#8217;re joining two points as theres no information included about the orientation of the object between them. There will always be one axis where things get a bit crazy when the cylinder is paralell to it. I&#8217;m now thinking how to choose that axis (at the moment its Y, but I&#8217;d prefer Z)</p>
<p>Final edit: I flipped the coordinates system on its back just before running it through the polar coordinates, opengl translation etc. x = x , y = -z, and z = y. Then at the end of the sketch commands (after the last popmatrix) I flip the world back up again with a glrotate -90 1 0 0. This means the crazy rotation will happen when the cylinders are close to pointing at the camera, minimizing the visual effect.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198594</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198594</link>
					<pubDate>Mon, 15 Aug 2011 01:01:37 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>Hey Bferns,</p>
<p>I&#8217;m dealing with a similar patch right now and surprised at my inability to successfully solve this seemingly simple problem,</p>
<p>any chance you could share your patch we can all(me) learn from?</p>
<p>greatly appreciated </p>
<p>Jeremy</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198595</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198595</link>
					<pubDate>Mon, 15 Aug 2011 23:57:20 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>never mind, mostly figured out, I&#8217;ll post my patch shortly</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198596</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198596</link>
					<pubDate>Thu, 18 Aug 2011 00:58:55 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>hmmm so I thought I figured it all out but I&#8217;m unable to get the angle working right when z values are between -1.0 and 1.0</p>
<p>any ideas?</p>
<div><span id="toggle198596-0" class="patchtoggle" onmousedown="toggleMaxPatch('post198596-0', 'er198596-0');">&#8211; Pasted Max <span id="maxversion198596-0"></span> Patch, click to <span id="er198596-0">expand</span>. &#8211;</span> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"  width="110" height="14" class="clippy" ><param name="allowScriptAccess" value="always" /><param name="quality" value="high" /><param name="scale" value="noscale" /><param NAME="FlashVars" value="copied=copied!&#038;copyto=copy to clipboard"/><param name="bgcolor" value="#FFFFFF"/><param name="wmode" value="opaque"/><embed src="/wp-content/plugins/bbpress-copy-compressed/clippy.swf"  width="110" height="14"   name="clippy"  quality="high"  allowScriptAccess="always"  type="application/x-shockwave-flash"  pluginspage="http://www.macromedia.com/go/getflashplayer"  FlashVars="text=----------begin_max5_patcher----------%0A4006.3oc6cssbahjF9ZmmhtTkK1CNZoOwgs1ZqMY18hb2V0T0bSlToPRsjYB%0ABzBX63L07NsOC6S1B8eiDXKfFAB21ipjx1.RvW%2B0%2Bm5e5t%2B%2B02b0rEweSjNC%0A8WQeBc0U%2B5at5J4oJNwUpiuZ1V%2BusLzOU9wlsLd6VQT1rqgqkI9Vl77%2B63fn%0ALzGJOezsaChBEYxuDVcx0wQYoAeWHOGYt0gOa7sYke3xytKQjl%2Bf7yBhi9Rh%0AXYFfRFml%2BEQtVE%2Br7GnOW4ID4uU9Dl89j.%2BvR.syOa4MAQapbq3Lbw2Gicj%2B%0AhKuajp2tfUxaT7he4cX7rhy8au4ME%2B35Qgsd%2B3wV8pgi4NUZ31rVa2VmR6dq%0AHM0ei3Is6h9zri1pI8oUWRQvoxdXm.ZXylcZRBDNufC3VtE%2BhBri6wID2SgO%0AhD2m%2BceJcfV3Gs4n7g0yIePAkL6hmWtFWaxGjQjNRalNN%2BJELYuNwS1ZUGzj%0ANwH1l24%2BUDdNhLGQmiXyQ74H64GkBreV0Pb7j7BlBVNZ0Vo8XJTH91tDze3s%0AqI%2B42tF%2BG%2BKj4lm4ClGHtXK4HOu13Ft2uu3FphNzhab9cF2XIMvRbrzfarGS%0A%2BvaBWFGFmfvHq7VEZa7chrXzawn2RPukdMJc2MhDQQnU7CWkgdKG8V6Gc0vf%0AHwWtOXU1M4FwfCSEaJh5Y%2B8a%2BWsDGEenkw2FkUsKvfBG.htjQAeAtPTAjF5X%0A3inP6uDjMeS37a7iVEJPqii02YHdN2iiccNJCQZjgt9zkdoRAVaHJR2V8XRF%0ASM6cn7K79nMghg6mj1DwrNL1OqfcdzebZbksEEzzAE91cexX0tShDEEo3n7G%0AcPn3NQRZ9HipHNb0rpAy.xrLHNNFHO6V4Aly8aBiW9UwpJQLc0rUh086tDuS%0ADc3aTaTY0FZF7IChpNrtG%2Bj8uML6KGuaq90W6uTz3W9ncJWMaSRvp3nBPT6a%0AVb5xGWwHifgBVE2xOQj%2Bti7kyhiCW3mbWPZvhPQs9hbIa%2Bnfs9Yhr..ODq8e%0Aufs6RB.qe6OmHxO%2BdbS5xj3vvZ2J3J2cjqrRbWvRgz3q7dcfspMt9JxN0z4p%0Ac91z8pq%2B884IYwqpdoiYc5o5fGfWilv6vL9SU79IQxJ%2BH%2Bpf4XFzskizmYym%0AS7XNTu7%2BVJfh8pzS%2B3A5A1rtpztE7GWO974eOe..MxljlXSxoxlRAups4Fxz%0AB0FTFnjipO2pMvF8YT6dl%2BSdcyfMDs74uOHUDlCRDdb6GHs0O.i08wR2M0Yv%0AsA4U5H1YPbg6oLAPbxi8I0P34iTmQ8PSq2a7N7DpOnox.DcNgMl7ODyDgePY%0AnZVmZXH.u9MHcpLI11QSyJ7oRR94SPt2jHwg2OwQxu2rMeBTpxpMWOKrzoJj%0Ai%2BD5cSpJd8wNchJ4Vxf3HtxeQocRlSk4x%2B1DSlC2dYobI3Tix6zyu6XRk4BC%0A4s19O9gSVad%2BP3kp0Cj5fnkvVp2XTWTGy6B0URcvaRBawzi53VWntx2XaoTm%0AtTG9B0URcpWmqkslJr1WnNE0AI9VeScNWXtxXUb5Gy4NQgpfcstOwe2Dl6tt%0Ah7SuD3w3RCeLOq8IvCNSaIviwtvpsKk5xOAVkbgU6XbJvTkvi1CVkNprJzxz%0Ah4N5LmoQ0PF3DUYQiW9yFaUVUwP4jgq3puDZsTORuZsD2WzsVXp8neq0YJZs%0AmZT.Vm6n.z0ukCj4G5gD.0lY.BaBS.jq0Ij0h5Syfmi7.wfIqIyld7Ym3S3T%0A9Dwo%2BEDcNlg4dzWxzJUFzuc2zp8E87JtJr5mdNdxzyeoplSgQeVpli6TdjbQ%0AMuGzp1p4zKp4OIFIsUystnl2Ik5zK0br6E07dPq5pli8tnlWYXtRu46cp2kZ%0ANleg7drCF8IuKwQVcNUa2Oxaplv.2Fsye4WQVyg%2BOtDLUKBtgIh8IS0vPyo1%0AtGl95sR0i5PykLVir33k%2Bxit5FjsXGld44gMEo444jNrk5ZNT8nC9qc5f1K5%0Av9UNcfor9PGzW6zA7VzUKiktyQ7qb5voWrA1jSXtYLCgvJRTy4pAldg5J0Ls%0AsApSyob.lbg5JotRoNcotQM4s02hPpG08OgGWJ0ZHzDDnLQMSLb6jklpbe8N%0AzKtoxL1CTVoX8VuBdWnxls6Q6EU5dgJaNV29QkNSkYveLFs1OA8QzM92IP9n%0AzGRyDaQY23mgx7%2BpHEkceLZWwdpTJ5cnT%2BGxul.kDr4lLTwZoG8o2%2BYTwugS%0AIBWDeO5Se3yy%2B4neNB8wLz5fnUoxuz1fUuSdmPKDY2KDQxyle%2BuVdCRy6LfG%0ArO74Wk3ee9iNMnXAioteEWHJ%2BNEcaJ58n0IwaQe.kEKeJ.xDg9YA4skUAoY9%0AQKEnfHzR%2BjLQZfeDJcm%2BRw0vc4injaixayzUEWOdWbHJm6KVOLwQnfrhaaNM%0Ak3mehh6r%2B2C1da1MWm2FE2IWDaRXW9bpRu01DF7LG%2BLbK0dLC3hwClDpEBkM%0ANLCuoRR76iahurF3xZlnVQL6ySXGSxL5TwSOXT7jZctnOOwtjR5JiICxmOr5%0Aq5NkzzKuLjmLpL8IO2KjWkwkw5G4MUgIWrms04aBgZdaCFkDJAV8evrXn045%0A8TMFN5%2BrL5lIb5dGlGTzHvovxkl4c3Es2JkNYIO3alkOXrcu7AyNZrJG1Udj%0A6yXGeCtQ9zKt9wIvz3aSVVJCnxh30n5.YkHMKHZ%2BlTzm16Z6wevaBVsp9lBj%0ArOJXELZD3Ki9rVc48F2XcwsmYgaht310nvMQW4DBwrvst7MyrvMSW4aLynvM%0A2QSbysMKby0E2NlEts00dRwGDaNx2d5x2lkeGtqt7sYImnOeaV9czE1GINlm%0ASXqqTB1r75nqw6iD80yIr00FH2rfMm7xz1MW2XSLLWkVZBayxBn1AlX8xzgi%0AYM9LlaOjsMnvob5grsAAa6dHjXPvlo6fgMqAmwz0gCwrbTxz0xMyvvstv1rr%0AAR00zMyrb4Pc6CtMGyITsyYhYMZAJuO7Mwbvs1lAML4acoayJ0ZDccxSLqT8%0APzV71r7xSz0sC0rDuI5NrRhg8pQzM5DhYMdXseyHlErwZmRPyRLAqcliMKu7%0AXsSJng8lV01siYk5XrttcHlkadrttcvNlGtw5faCjuI5faCalanqamwz7s5j%0A43GJtXo92IV8EXxj%2BE%2BrrjfE2lAyolJ3e1Qq2VaBiW3GpJOY6mIP6q0VmqZ3%0AUKWpoxG1aNvBiZAas9%2BMuB1JGJpjTWcJXqzSp77Ua5kNfx0KoyZvWsoSZOqR%0AgpI6Hre3zdM9lPd0RCkU7AsnA5qWZf3nOMvFyJ99O7%2B9uOSE1ZGnZlp1QnHz%0AVqr0NiYa9COasY6x1rqFsY2wrM%2B9ms1LGJQ250l8d0ph6.KeLEMztJts0qVZ%0AvEJUHZQCb2WszfMThs0iFXuZoAUMrVMI76Po30KKP0mE3udiH10SaVfMlEc9%0AmVk4uwemHNIPVq34xpDu80n80ld0Jr5ZzxGxGa8JQR9AXYUmu3O3uPJl7LKX%0Am3zC7Nq9UCES9SJx6r3MMUKzw8qIVsxx0x9yiMT42IsJ5fIioriTvOGL4ROy%0AztKt91v5YtetjarkNbfeVs7Ydj8RvQJgDHQ5x2s91vvzkIBQzQ4Gqmc9Qsd9%0AU7iW6xN7Z2HQxSRJUPn3NQRpJcY6KH5Uh%2BAFuqkJXX0FfasB69hMgwK%2BpX0i%0AyBUutIE0D9CeAqpUG35kHX4mLHpZ8EtwzecjEj2fycVQYr%2BHkvdY0sW839DB%0Ajgw0ZgxOQj%2Bti7kyhiCW3mbWPZvhPQsdhbQY%2Bnfs9Yhr..ODq8eufs6RB.C1%0AV0qx82bjpbObk6NxUVItKXo39fUY2HuWGXq7GeSKOvguxJ%2BWoKycbgd%2BO9Ce%0A7ineHdkn%2BqzxN2gnGzVnAH2Zqx0AqqspImWB0mFUla3NyIbiYuGrsR%2B7AKxG%0AbZ0isBngsGhO3BDKrBwAxVk6P2112Kml0I9WEOn0N8X%2BXRVWUa2qO1uFCFlp%0A1766r.ANskZ6501oQRdcZJ31JCeEhsvF7bqkI0wjVqEFdeL70uh8bisZOkkw%0AN2%2BBsmrUVu1KLyWjq1D6WjSzZ9Kx4yI4UvKB2546EgacFdQ3%2BRP176ChVEeO%0AZcbL5erRrK6lE2tdsHAg0OGXsNHzFSD1S7WbZCF0St0BUtGR1znQsGwQqmfR%0ADE4x5KK7W7fgNTcNTKdfcBdWbqoI8jdCJEhNq2kt41fysbx.jQTaZbPE4P89%0AD4MvBiZttJ9iaSDnhAdirY4%2B2PS4kp9nZI4FHwlMkwKmQMSxKyQXhOxs3eFJ%0A2.BLL3cx531J2XeF3FRw%2BLTtARLAC1k2amabOoLhmC%2BEhj8TSRP5ReH%2BTVy8%0ANyVbTiPbHuyRPShowqrDSrL72X.uRaoqWX.cD8y9e1JxRhQDqysNvPlMR.4.%0AUhmNhAgLluxfLzBTtQhTAZwH4.l1UfZxG2Pm8VpDvaoCewmMtg5tIbd5WE4X%0ABh1MrXmjt.dP1oO%2BQ7NfHYTQxYWtq60gZn83ybPLuELmgOv.PDSMt.Wd6DUs%0AIKm7iTO4I.u83gDqXu12ubZbuxoVRGd5ffe7.fI1r4xTgQfP581eDLJ3mzKq%0AKZwxkFHtC751OzlGQ.unjrQka87.zkGMPvRzfZqujA6FqSAjnlGjHFGjLu9M%0AtwgH6IEQ35Ka3lrkMoXxkpk4Um9AJGoAKNL0por8GLPv5XeN.qKX7mTErjQ.%0ArryAXwVXI.gormBsT2AiVasTfmVMXaKMvjbGxfMcXRGqJEbIWeHw7bjN1cfB%0ALii29il.vx85WeZIXsTI4xd%2BQS.XY0VXim8N6GwMsH.NgXxUWLwmNL4nKlvS%0AGlr0ESSmAMN%2BrLVFkCLlrxTUNVlhiFJbY5RgzoiBsNGdUskTG2hWwoJLeFGF%0AX00YQO7ewXJmEvB3vFOm34445pN0DfXdOI2RDCdLXVtikGCttdLvm.Xki01l%0AaM2wxxBSTmZfH9QnoAIBqI0nzi7opyV%2B7zfoNkCm1Q3xzUYtGFCodfx.jpaJ%0AiNGmKsYYqN0DfXdOc1ThXKoESJFu%2BnI.rL1IBVPYFS1ez.AKUq.dlTwS54Hz%0ABFFFHuCqZnEEGMzjy3bNf6PAk1p3FFl318yIWwj2PoIHW6U38GMEnUpESOAz%0AxfpJuybq7HdbrUmZnPlpamdeHXWdoc8Bqj4CRdeTDigxCU2nzNAHCF1KVXri%0AjgcsPqTlfcBnEjIr4GhBdLjIH5JSLci6WKLw85WmNkVsSm6ZOZc5Dc6z4m.Z%0AYvTOit%2BnglXdsFWdOcFUrJQJh5PsX4pbzPQK6LfVBgclPq7kdz43KHl3ahg3%0A7LfJ7XiJ3sGqlvlPxMjGLXzp2K3fOwbndABylXTYoMpvSHpzATCgoxO32dy%2B%0AGuGIQnA%0A-----------end_max5_patcher-----------&#038;copied=copied!&#038;;copyto=copy to clipboard"  bgcolor="#ffffff"  wmode="opaque" /> </object></div>
<div id="post198596-0" style="display:none;visibility:hidden;" >
<div class="patchtoggleInfo"><small>Copy <b>all</b> of the following text.Then, in Max, select <em>New From Clipboard</em>.</small></div>
<div class="patchtogglediv">
<pre><code id="pastedcode198596-0">----------begin_max5_patcher----------
4006.3oc6cssbahjF9ZmmhtTkK1CNZoOwgs1ZqMY18hb2V0T0bSlToPRsjYB
BzBX63L07NsOC6S1B8eiDXKfFAB21ipjx1.RvW+0+m5e5t++02b0rEweSjNC
8WQeBc0U+5at5J4oJNwUpiuZ1V+usLzOU9wlsLd6VQT1rqgqkI9Vl77+63fn
LzGJOezsaChBEYxuDVcx0wQYoAeWHOGYt0gOa7sYke3xytKQjl+f7yBhi9Rh
XYFfRFml+EQtVE+r7GnOW4ID4uU9Dl89j.+vR.syOa4MAQapbq3Lbw2Gicj+
hKuajp2tfUxaT7he4cX7rhy8au4ME+35Qgsd+3wV8pgi4NUZ31rVa2VmR6dq
HM0ei3Is6h9zri1pI8oUWRQvoxdXm.ZXylcZRBDNufC3VtE+hBri6wID2SgO
hD2m+ceJcfV3Gs4n7g0yIePAkL6hmWtFWaxGjQjNRalNN+JELYuNwS1ZUGzj
NwH1l24+UDdNhLGQmiXyQ74H64GkBreV0Pb7j7BlBVNZ0Vo8XJTH91tDze3s
qI+42tF+G+Kj4lm4ClGHtXK4HOu13Ft2uu3FphNzhab9cF2XIMvRbrzfarGS
+vaBWFGFmfvHq7VEZa7chrXzawn2RPukdMJc2MhDQQnU7CWkgdKG8V6Gc0vf
HwWtOXU1M4FwfCSEaJh5Y+8a+WsDGEenkw2FkUsKvfBG.htjQAeAtPTAjF5X
3inP6uDjMeS37a7iVEJPqii02YHdN2iiccNJCQZjgt9zkdoRAVaHJR2V8XRF
SM6cn7K79nMghg6mj1DwrNL1OqfcdzebZbksEEzzAE91cexX0tShDEEo3n7G
cPn3NQRZ9HipHNb0rpAy.xrLHNNFHO6V4Aly8aBiW9UwpJQLc0rUh086tDuS
Dc3aTaTY0FZF7IChpNrtG+j8uML6KGuaq90W6uTz3W9ncJWMaSRvp3nBPT6a
Vb5xGWwHifgBVE2xOQj+ti7kyhiCW3mbWPZvhPQs9hbIa+nfs9Yhr..ODq8e
ufs6RB.qe6OmHxO+dbS5xj3vvZ2J3J2cjqrRbWvRgz3q7dcfspMt9JxN0z4p
c91z8pq+884IYwqpdoiYc5o5fGfWilv6vL9SU79IQxJ+H+pf4XFzskizmYym
S7XNTu7+VJfh8pzS+3A5A1rtpztE7GWO974eOe..MxljlXSxoxlRAups4Fxz
B0FTFnjipO2pMvF8YT6dl+SdcyfMDs74uOHUDlCRDdb6GHs0O.i08wR2M0Yv
sA4U5H1YPbg6oLAPbxi8I0P34iTmQ8PSq2a7N7DpOnox.DcNgMl7ODyDgePY
nZVmZXH.u9MHcpLI11QSyJ7oRR94SPt2jHwg2OwQxu2rMeBTpxpMWOKrzoJj
i+D5cSpJd8wNchJ4Vxf3HtxeQocRlSk4x+1DSlC2dYobI3Tix6zyu6XRk4BC
4s19O9gSVad+P3kp0Cj5fnkvVp2XTWTGy6B0URcvaRBawzi53VWntx2XaoTm
tTG9B0URcpWmqkslJr1WnNE0AI9VeScNWXtxXUb5Gy4NQgpfcstOwe2Dl6tt
h7SuD3w3RCeLOq8IvCNSaIviwtvpsKk5xOAVkbgU6XbJvTkvi1CVkNprJzxz
h4N5LmoQ0PF3DUYQiW9yFaUVUwP4jgq3puDZsTORuZsD2WzsVXp8neq0YJZs
mZT.Vm6n.z0ukCj4G5gD.0lY.BaBS.jq0Ij0h5Syfmi7.wfIqIyld7Ym3S3T
9Dwo+EDcNlg4dzWxzJUFzuc2zp8E87JtJr5mdNdxzyeoplSgQeVpli6TdjbQ
MuGzp1p4zKp4OIFIsUystnl2Ik5zK0br6E07dPq5pli8tnlWYXtRu46cp2kZ
Nleg7drCF8IuKwQVcNUa2Oxaplv.2Fsye4WQVyg+OtDLUKBtgIh8IS0vPyo1
tGl95sR0i5PykLVir33k+xit5FjsXGld44gMEo444jNrk5ZNT8nC9qc5f1K5
v9UNcfor9PGzW6zA7VzUKiktyQ7qb5voWrA1jSXtYLCgvJRTy4pAldg5J0Ls
sApSyob.lbg5JotRoNcotQM4s02hPpG08OgGWJ0ZHzDDnLQMSLb6jklpbe8N
zKtoxL1CTVoX8VuBdWnxls6Q6EU5dgJaNV29QkNSkYveLFs1OA8QzM92IP9n
zGRyDaQY23mgx7+pHEkceLZWwdpTJ5cnT+Gxul.kDr4lLTwZoG8o2+YTwugS
IBWDeO5Se3yy+4neNB8wLz5fnUoxuz1fUuSdmPKDY2KDQxyle+uVdCRy6LfG
rO74Wk3ee9iNMnXAioteEWHJ+NEcaJ58n0IwaQe.kEKeJ.xDg9YA4skUAoY9
QKEnfHzR+jLQZfeDJcm+Rw0vc4injaixayzUEWOdWbHJm6KVOLwQnfrhaaNM
k3mehh6r+2C1da1MWm2FE2IWDaRXW9bpRu01DF7LG+LbK0dLC3hwClDpEBkM
NLCuoRR76iahurF3xZlnVQL6ySXGSxL5TwSOXT7jZctnOOwtjR5JiICxmOr5
q5NkzzKuLjmLpL8IO2KjWkwkw5G4MUgIWrms04aBgZdaCFkDJAV8evrXn045
8TMFN5+rL5lIb5dGlGTzHvovxkl4c3Es2JkNYIO3alkOXrcu7AyNZrJG1Udj
6yXGeCtQ9zKt9wIvz3aSVVJCnxh30n5.YkHMKHZ+lTzm16Z6wevaBVsp9lBj
rOJXELZD3Ki9rVc48F2XcwsmYgaht310nvMQW4DBwrvst7MyrvMSW4aLynvM
2QSbysMKby0E2NlEts00dRwGDaNx2d5x2lkeGtqt7sYImnOeaV9czE1GINlm
SXqqTB1r75nqw6iD80yIr00FH2rfMm7xz1MW2XSLLWkVZBayxBn1AlX8xzgi
YM9LlaOjsMnvob5grsAAa6dHjXPvlo6fgMqAmwz0gCwrbTxz0xMyvvstv1rr
AR00zMyrb4Pc6CtMGyITsyYhYMZAJuO7Mwbvs1lAML4acoayJ0ZDccxSLqT8
PzV71r7xSz0sC0rDuI5NrRhg8pQzM5DhYMdXseyHlErwZmRPyRLAqcliMKu7
XsSJng8lV01siYk5XrttcHlkadrttcvNlGtw5faCjuI5faCalanqamwz7s5j
43GJtXo92IV8EXxj+E+rrjfE2lAyolJ3e1Qq2VaBiW3GpJOY6mIP6q0VmqZ3
UKWpoxG1aNvBiZAas9+MuB1JGJpjTWcJXqzSp77Ua5kNfx0KoyZvWsoSZOqR
gpI6Hre3zdM9lPd0RCkU7AsnA5qWZf3nOMvFyJ99O7+9uOSE1ZGnZlp1QnHz
Vqr0NiYa9COasY6x1rqFsY2wrM+9ms1LGJQ250l8d0ph6.KeLEMztJts0qVZ
vEJUHZQCb2WszfMThs0iFXuZoAUMrVMI76Po30KKP0mE3udiH10SaVfMlEc9
mVk4uwemHNIPVq34xpDu80n80ld0Jr5ZzxGxGa8JQR9AXYUmu3O3uPJl7LKX
m3zC7Nq9UCES9SJx6r3MMUKzw8qIVsxx0x9yiMT42IsJ5fIioriTvOGL4ROy
ztKt91v5YtetjarkNbfeVs7Ydj8RvQJgDHQ5x2s91vvzkIBQzQ4Gqmc9Qsd9
U7iW6xN7Z2HQxSRJUPn3NQRpJcY6KH5Uh+AFuqkJXX0FfasB69hMgwK+pX0i
yBUutIE0D9CeAqpUG35kHX4mLHpZ8EtwzecjEj2fycVQYr+HkvdY0sW839DB
jgw0ZgxOQj+ti7kyhiCW3mbWPZvhPQsdhbQY+nfs9Yhr..ODq8eufs6RB.C1
V0qx82bjpbObk6NxUVItKXo39fUY2HuWGXq7GeSKOvguxJ+WoKycbgd+O9Ce
7ineHdkn+qzxN2gnGzVnAH2Zqx0AqqspImWB0mFUla3NyIbiYuGrsR+7AKxG
bZ0isBngsGhO3BDKrBwAxVk6P2112Kml0I9WEOn0N8X+XRVWUa2qO1uFCFlp
1766r.ANskZ6501oQRdcZJ31JCeEhsvF7bqkI0wjVqEFdeL70uh8bisZOkkw
N2+BsmrUVu1KLyWjq1D6WjSzZ9Kx4yI4UvKB2546EgacFdQ3+RP176ChVEeO
ZcbL5erRrK6lE2tdsHAg0OGXsNHzFSD1S7WbZCF0St0BUtGR1znQsGwQqmfR
DE4x5KK7W7fgNTcNTKdfcBdWbqoI8jdCJEhNq2kt41fysbx.jQTaZbPE4P89
D4MvBiZttJ9iaSDnhAdirY4+2PS4kp9nZI4FHwlMkwKmQMSxKyQXhOxs3eFJ
2.BLL3cx531J2XeF3FRw+LTtARLAC1k2amabOoLhmC+Ehj8TSRP5ReH+TVy8
NyVbTiPbHuyRPShowqrDSrL72X.uRaoqWX.cD8y9e1JxRhQDqysNvPlMR.4.
UhmNhAgLluxfLzBTtQhTAZwH4.l1UfZxG2Pm8VpDvaoCewmMtg5tIbd5WE4X
Bh1MrXmjt.dP1oO+Q7NfHYTQxYWtq60gZn83ybPLuELmgOv.PDSMt.Wd6DUs
IKm7iTO4I.u83gDqXu12ubZbuxoVRGd5ffe7.fI1r4xTgQfP581eDLJ3mzKq
KZwxkFHtC751OzlGQ.unjrQka87.zkGMPvRzfZqujA6FqSAjnlGjHFGjLu9M
twgH6IEQ35Ka3lrkMoXxkpk4Um9AJGoAKNL0por8GLPv5XeN.qKX7mTErjQ.
rryAXwVXI.gormBsT2AiVasTfmVMXaKMvjbGxfMcXRGqJEbIWeHw7bjN1cfB
Lii29il.vx85WeZIXsTI4xd+QS.XY0VXim8N6GwMsH.NgXxUWLwmNL4nKlvS
Glr0ESSmAMN+rLVFkCLlrxTUNVlhiFJbY5RgzoiBsNGdUskTG2hWwoJLeFGF
X00YQO7ewXJmEvB3vFOm34445pN0DfXdOI2RDCdLXVtikGCttdLvm.Xki01l
aM2wxxBSTmZfH9QnoAIBqI0nzi7opyV+7zfoNkCm1Q3xzUYtGFCodfx.jpaJ
iNGmKsYYqN0DfXdOc1ThXKoESJFu+nI.rL1IBVPYFS1ez.AKUq.dlTwS54Hz
BFFFHuCqZnEEGMzjy3bNf6PAk1p3FFl318yIWwj2PoIHW6U38GMEnUpESOAz
xfpJuybq7HdbrUmZnPlpamdeHXWdoc8Bqj4CRdeTDigxCU2nzNAHCF1KVXri
jgcsPqTlfcBnEjIr4GhBdLjIH5JSLci6WKLw85WmNkVsSm6ZOZc5Dc6z4m.Z
YvTOit+nglXdsFWdOcFUrJQJh5PsX4pbzPQK6LfVBgclPq7kdz43KHl3ahg3
7LfJ7XiJ3sGqlvlPxMjGLXzp2K3fOwbndABylXTYoMpvSHpzATCgoxO32dy+
GuGIQnA
-----------end_max5_patcher-----------</code></pre></div>
</div>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198597</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198597</link>
					<pubDate>Sun, 21 Aug 2011 21:48:16 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>FYI I finally made some progress&#8230; I got orientation to work on the elbow joint</p>
<p>I used the rotation matrix values out of OSCeleton (just one actually Z1) with the equation thetaY = asin(Z1) (oscelton gives you a rotation matrix X1 X2 X3, Y1 Y2 Y3, Z1 Z2 Z3)<br />
and then 2d cartesian trig i&#8217;ve used before (atan2((y2-y1)(x2-x1)) for the missing axis&#8230; the x axis is fixed/set to 90 degrees. (the final product of those 2 equations also have to be converted from radians to degrees, use n*180 /3.14)</p>
<p>so shapeorient X,Y,Z<br />
becomes&#8230;. shapeorient 90, (atan2((y2-y1)(x2-x1))*180/31.4), (asin(Z1)*180/31.4)</p>
<p>anyway this works for my arm test case right now, I&#8217;ll update as I get the rest of the body online.<br />
- technically the matrix should work without my point trig above (using some other math I found here < <a href="https://groups.google.com/group/openni-dev/browse_frm/thread/ccb8e62acd17b95b/e61fd527cf1394e3?lnk=gst&#038;q=orientation#e61fd527cf1394e3" rel="nofollow">https://groups.google.com/group/openni-dev/browse_frm/thread/ccb8e62acd17b95b/e61fd527cf1394e3?lnk=gst&#038;q=orientation#e61fd527cf1394e3>, but it wasn&#8217;t working)</p>
<p>DISCLAIMER I&#8217;m not a math guy, I&#8217;m just figuring this out as I go along</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198598</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198598</link>
					<pubDate>Fri, 02 Sep 2011 03:12:20 +0000</pubDate>
					<dc:creator>bferns</dc:creator>

					<description>
						<![CDATA[
						<p>Hi Jeremy,</p>
<p>Sorry I couldn&#8217;t help initially &#8211; I only just figured out you can get email notifications on threads here. In the first patch you posted you had the third outlet of 3dcartopol hooked up as a rotation on the z axis, whereas it actually outputs the distance between the points &#8211; this might have cause some of the issues.</p>
<p>You started with the same problem I did with the shapes flipping when crossing one axis, due to only having 2 axes of rotation info. I stopped there because I&#8217;ve been working on an AR project since, but I did start looking into cross products and dot products, which seemed like they could handle some of the mathematical heavy lifting (I have no background in maths, so most info I found on the web was of no use to me). Heres some of the clearer ones I found:</p>
<p><a href="http://stackoverflow.com/questions/1516296/find-the-normal-angle-of-the-face-of-a-triangle-in-3d-given-the-co-ordinated-of" rel="nofollow">http://stackoverflow.com/questions/1516296/find-the-normal-angle-of-the-face-of-a-triangle-in-3d-given-the-co-ordinated-of</a></p>
<p><a href="http://stackoverflow.com/questions/5173707/detecting-an-objects-rotation-in-3d" rel="nofollow">http://stackoverflow.com/questions/5173707/detecting-an-objects-rotation-in-3d</a></p>
<p>My next step was going to be either to lock one axis of rotation to a world axis (which I suspected could look odd) or involve a third point (hence looking at the above links). I couldn&#8217;t figure out how to break it back down into a 4 value rotation in the time I had though.</p>
<p>Also I think the new OSCeleton mentioned something about outputting joint angles &#8211; I don&#8217;t know if thats global rotation, or local (either would be pretty cool), but it might help optimize your patch.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198599</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198599</link>
					<pubDate>Fri, 09 Sep 2011 17:42:20 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>Hey Bferns, </p>
<p>no worries,<br />
I actually made some more progress since then and have nearly full degree of movement by doing some math on the rotation matrix (joint rotation data osceleton can now put out) &#8211; I&#8217;ll post an easy to use patch once it&#8217;s perfected.</p>
<p>right now I&#8217;m dealing with a small issue of having the middles of all the joints not line up, but I&#8217;m sure it&#8217;s something simple I&#8217;m overlooking.</p>
<p>as a side note I finally bought a bunch of trig/geometry textbooks, if I&#8217;m not good with 3D math today I&#8217;ll try and be an expert tomorrow,</p>
<p>almost there! -jeremy</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198600</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198600</link>
					<pubDate>Sun, 11 Sep 2011 17:08:09 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>Finally some progress! <a href="http://www.youtube.com/watch?v=FU-KqZ1U3VM" rel="nofollow">http://www.youtube.com/watch?v=FU-KqZ1U3VM</a></p>
<p>just used drawobject on a @name gridshape to get the rotation origin working<br />
rotation calculated using the rotation matrix OSCeleton puts out and rotate shape with shapeorient in jit.gl.sketch </p>
<p>here&#8217;s the math&#8230;</p>
<p>given the rotation matrix:</p>
<p>X axis = (elements[0], elements[3], elements[6])<br />
Y axis = (elements[1], elements[4], elements[7])<br />
Z axis = (elements[2], elements[5], elements[8])</p>
<p>calculate angles with:</p>
<p>thetaY = asin(Z1);<br />
thetaX = atan2(-Z2,Z2);<br />
thetaZ = atan2(-rY1,X1);</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198601</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198601</link>
					<pubDate>Tue, 13 Sep 2011 13:22:34 +0000</pubDate>
					<dc:creator>jeremybailey</dc:creator>

					<description>
						<![CDATA[
						<p>FYI the math above doesn&#8217;t handle 360 degrees of rotation freedom,<br />
see more here < <a href="http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToEuler/index.htm" rel="nofollow">http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToEuler/index.htm></p>
<p>I wish there was a way to transform a gl object with the raw 3X3 matrix instead of converting everything to euler</p>
<p>is there?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198602</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198602</link>
					<pubDate>Sat, 01 Oct 2011 01:29:32 +0000</pubDate>
					<dc:creator>MJ</dc:creator>

					<description>
						<![CDATA[
						<p>did some math to (with the help of my dad a retired math teacher) </p>
<p><a href="http://vimeo.com/29865449" rel="nofollow">http://vimeo.com/29865449</a></p>
<p>will post some pdf info about it soon</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198603</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198603</link>
					<pubDate>Fri, 28 Oct 2011 16:26:17 +0000</pubDate>
					<dc:creator>Vjacobs</dc:creator>

					<description>
						<![CDATA[
						<p>I don&#8217;t think you can feed a raw matrix to a gl object. I&#8217;m having the same problem. However, you can convert the rotation matrix to a quaternion to avoid gimbal locks and singularities that occur with Euler angles and to gain full 360° freedom. Quaternions can be easily translated to Gl rotate format (ie. using the LFO.qn2rot object)</p>
<p>conversion: <a href="http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm" rel="nofollow">http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm</a></p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198604</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198604</link>
					<pubDate>Fri, 28 Oct 2011 22:29:02 +0000</pubDate>
					<dc:creator>Rob Ramirez</dc:creator>

					<description>
						<![CDATA[
						<p>also make sure you check out the new max 6 quaternion objects:<br />
jit.quat<br />
jit.quat2euler<br />
jit.euler2quat<br />
jit.quat2axis<br />
jit.axis2quat</p>
<p>as well as the jit.anim.node object, which has a gettable attribute called worldtransform, which is the 4&#215;4 world-matrix transform of that object.</p>
<p>any ways these objects can be made more useful to specific tasks, i&#8217;m open to hearing!</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198605</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198605</link>
					<pubDate>Sun, 20 Nov 2011 23:04:23 +0000</pubDate>
					<dc:creator>diablodale</dc:creator>

					<description>
						<![CDATA[
						<p>Hi, Robert. I would love to be able to throw a full 4&#215;4 Gl transform matrix into a jit.anim.node and let it transform children. The intention is to have a max message way to do a glmultmatrix transform</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198606</guid>
					<title><![CDATA[Re: Draw a cylinder between two points (multiple times per frame)]]></title>
					<link>http://cycling74.com/forums/topic/draw-a-cylinder-between-two-points-multiple-times-per-frame/#post-198606</link>
					<pubDate>Sun, 20 Nov 2011 23:43:27 +0000</pubDate>
					<dc:creator>Rob Ramirez</dc:creator>

					<description>
						<![CDATA[
						<p>hi diablodale.<br />
i agree this would be useful. look for it to be in the 6.0.2 version of jit.anim.node.</p>
<p>thanks!</p>
						]]>
					</description>

					
					
				</item>

					
		
	</channel>
	</rss>

