#1
|
|||
|
|||
Draw line and rotate it
Hi,
I try to re-define my problem from the other thread: I want to draw a line two ways: 1) Code:
begin = [0,0,0] end = [-2,1,2] viz.startlayer(viz.LINES) viz.linewidth(2) viz.vertexcolor(viz.RED) viz.vertex(begin) viz.vertex(end) viz.startlayer(viz.POINTS) viz.pointsize(3) viz.vertex(begin) viz.vertex(end) dr = viz.endlayer() 2) Code:
begin = [0,0,0] end = [-2,1,2] d = vizmat.Distance(begin,end) viz.startlayer(viz.LINES) viz.linewidth(2) viz.vertexcolor(0,0,0.6) viz.vertex(0,0,0) viz.vertex(0,d,0) viz.startlayer(viz.POINTS) viz.pointsize(3) viz.vertex(0,0,0) viz.vertex(0,d,0) drr = viz.endlayer() drr.setPosition(begin) drr.setEuler(0,0,-vizmat.AngleToPoint([begin[0],begin[1]],[end[0],end[1]])) The rotation about the z-axis works very fine. (see scrennshot1) But now I want to rotate the second line (the blue one) around the y-axis, too. So that I can see in the Top-View that the lines are exactly at the same place, the same direction, the same length and so on. I've tested many ways, but I can't find a solution. I've done: Code:
drr.setEuler(-vizmat.AngleToPoint([begin[0],begin[2]],[end[0],end[2]]), 0, -vizmat.AngleToPoint([begin[0],begin[1]],[end[0],end[1]])) Code:
drr.setEuler(vizmat.AngleToPoint([begin[0],begin[2]],[end[0],end[2]]), 0, -vizmat.AngleToPoint([begin[0],begin[1]],[end[0],end[1]])) Code:
drr.setEuler(-vizmat.AngleToPoint([begin[2],begin[0]],[end[2],end[0]]), 0, -vizmat.AngleToPoint([begin[0],begin[1]],[end[0],end[1]])) Code:
drr.setEuler(vizmat.AngleToPoint([begin[2],begin[0]],[end[2],end[0]]), 0, -vizmat.AngleToPoint([begin[0],begin[1]],[end[0],end[1]])) Thanks a lot.... |
#2
|
|||
|
|||
In your second example, you are creating a line along the local Y-axis. So rotating that line around it's local Y-axis won't really do anything. Are you trying to draw 2D or 3D lines?
|
#3
|
|||
|
|||
The lines should be drawn in 3D.
= = = I want to draw three lines: If I click with the left mousebutton, the first line would be drawn from P(0/0) to the acutal mouseposition and if I click again then the second one would be drawn, too. The z-value from the both lines is 0. And now if I click a special button, I want to create a third line from the end of the first line to the end of the second line. This works fine if the z-values are 0. BUT: I'm possible to turn the two lines around the y-axis with the center at P(0/0). So the z-values aren't 0. And afterthat I want to create the third line and then it's wrong! |
#4
|
|||
|
|||
Hey,
is there really no possibility to solve my problem? Isn't it possible to readout the angle of the first line and the z-axis and afterthat to rotate the line with the arrow about this value around the y-axis? |
#5
|
|||
|
|||
Hey,
I've got another idea, to solve my problem. But therefore I should know, how to get the euler of my line. So I draw a line like this: Code:
begin = [0,0,0] end = [2,1,2] viz.startlayer(viz.LINES) viz.linewidth(2) viz.vertexcolor(viz.RED) viz.vertex(begin) viz.vertex(end) viz.startlayer(viz.POINTS) viz.pointsize(3) viz.vertex(begin) viz.vertex(end) dr = viz.endlayer() But If I make Code:
print dr.getEuler() Is it possible to get the euler of a drawn line? Or the angles between the axes and my line. Thanks a lot for all your help! |
#6
|
|||
|
|||
How can I get the euler of my line???
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Draw line with a triangle at the end | Chrissy2009 | Vizard | 9 | 08-24-2009 11:12 AM |