Cheers for the reply, it's helped me a lot, in fact it feels so close now I can almost taste it.
Thing is, its not quite getting the maths right somehow, here's what it looks like; http://graphicfilth.com/uncommon/bin-release/uncommon.html as you can see, the arrows are mostly hanging around the top and not pointing from the right place. here's the code that I've got; var myArr:Mesh = this.getChildByName(peep.name+"arrow") as Mesh; //we want to make the arrows live on the outside of the band icon, so we need to do some trig to get an angle //then move it to the outside of the icon along that angle //opposite var op:Number = peep.scenePosition.y-scenePosition.y; var v1sq:Number = Math.sqrt ((peep.scenePosition.x*peep.scenePosition.x) + (peep.scenePosition.z*peep.scenePosition.z)); var v0sq:Number = Math.sqrt((scenePosition.x*scenePosition.x) + (scenePosition.z*scenePosition.z)); //adjacent var ad:Number = v1sq - v0sq; //Hopefully the angle var pointing:Number = Math.atan(op/-ad); //make sure its not gone wrong if(!isNaN(pointing)){ myArr.vertices[0].adjust(Math.sin(pointing)*75,0,Math.cos(pointing) *75); myArr.vertices[1].adjust(myArr.vertices[0].x+5,0,myArr.vertices[0].z +5); } //place last vert at the band member myArr.vertices[2].adjust(peep.scenePosition.x-scenePosition.x, scenePosition.z-peep.scenePosition.z, peep.scenePosition.y-scenePosition.y); I'm currently trying to swap numbers around a bit, for some reason (possibly due to a rotation) my y/z coords seem to have gotten a bit garbled, although so far I've only managed to generate variations on the same broken theme. I suppose it's also possible that my placement code is wrong. Thanks again for the help, Martin On Mar 24, 2:13 pm, "pure....@googlemail.com" <pure....@googlemail.com> wrote: > this is how i would do it: > first decide "what angle" i want to get, because there is more than > 1angle between two points in a 3-dimensional system > i assume you want the gradient-angle, so you have to eliminate the 3rd > koordinate: > x/y/z; x1/y1/z1 -> > _distX = ( Math.sqrt( x1² + z1² ) - ( Math.sqrt( x² + z² ) ) > _distY = y1 - y > > now can continue with: angle = Math.atan ( _distY / _distX ) > > maybe this helps you a little bit, not sure if that is excactly what > you wanted > > cheers olsn > > On 24 Mrz., 14:18, Manic <mar...@graphicfilth.com> wrote: > > > Hi, > > > I'm trying to find the angle between two Number3Ds, everything I've > > tried so far hasn't worked, I've had a go with using the screen > > position, the scene position, the relative positions... everything. > > > I want to make the large end of the arrows sit around the outside of > > the striped box, forming a sort of halo around it. > > >http://graphicfilth.com/uncommon/bin-release/uncommon.html > > > Here's what I understand so far... > > > The arrows are created as children of the main box, so vertex 0 is at > > 0,0,0 while vertex 2 is assigned to the location of it's blue circle > > using this code; > > > theArrow.vertices[2].adjust(peep.scenePosition.x-scenePosition.x, > > scenePosition.z-peep.scenePosition.z, peep.scenePosition.y- > > scenePosition.y); > > > Now, I don't know why this code works, in my mind it's wrong, but it > > does work, so I guess I'm wrong. > > > So, if I'm working using relative coordinates from the Arrow, I should > > just be able to use the location of Vertex 2 and drop that into Trig, > > something like; > > > angle = Math.atan(theArrow.vertices[2].y/theArrow.vertices[2].x) > > > then use that angle to plot the other 2 vertices around the center of > > the main object. > > > However it never returns accurate results, I've tried with every > > possible combination of x/y/z over x/y/z from the coords, but nothing > > seems to work. > > > I'm tearing my hair out here, because I'm sure I've got the principle, > > but not the execution. > > > Thanks in advance > > > Martin