PDA

View Full Version : Create line and vertex


Chrissy2009
07-18-2009, 05:49 AM
Hello,

I want to draw a line with my mouse. So I made:

def drawLine():
global tmpnumber

while tmpnumber == 0:
yield viztask.waitMouseDown(viz.MOUSEBUTTON_LEFT)

tmpMousePOS = viz.screentoworld(viz.Mouse.getPosition())
tmpMousePOS.length = 0
pos = tmpMousePOS.end

viz.startlayer(viz.LINES)
viz.linewidth(10)
viz.vertexcolor(viz.BLACK)
viz.vertex(pos[0],pos[1],0)
viz.vertex(pos[0],pos[1],0)
line = viz.endlayer()

VertexLink = viz.link(viz.Mouse,line.Vertex(1))

yield viztask.waitMouseUp(viz.MOUSEBUTTON_LEFT)
VertexLink.remove()

tmpnumber += 1

task = viztask.schedule( drawLine() )

But the line is not at the mouse position. It looks like the proportion is wrong.
Can somebody help me?

I want to draw a line with my mouse. Not at the screen, but in the world.

If I made this:

def drawLine():
global tmpnumber
while tmpnumber <= 1:
yield viztask.waitMouseDown(viz.MOUSEBUTTON_LEFT)

pos = viz.mouse.getPosition()

viz.startlayer(viz.LINES)
viz.linewidth(3)
viz.vertexcolor(viz.BLACK)
viz.vertex(pos[0],pos[1],0)
viz.vertex(pos[0],pos[1],0)
line = viz.endlayer(parent=viz.SCREEN)

VertexLink = viz.link(viz.Mouse,line.Vertex(1))

yield viztask.waitMouseUp(viz.MOUSEBUTTON_LEFT)
VertexLink.remove()

tmpnumber += 1

than it works. The line is exactly at the mouseposition. But I want to draw the line in the world with an given z-value; for example at z = 10.


And how can I create at the begin and end of the line an vertex point?

Thanks an lot!!

farshizzo
07-20-2009, 10:22 AM
You can find a post here (http://forum.worldviz.com/showthread.php?t=2162) that describes how to convert a 2D mouse coordinate into a 3D world coordinate.

Chrissy2009
07-20-2009, 10:53 AM
Hi,

I still tested this, but it doesn't work!

while tmpnumber == 0:
yield viztask.waitMouseDown(viz.MOUSEBUTTON_LEFT)

tmpMousePOS = viz.screentoworld(viz.Mouse.getPosition())
tmpMousePOS.length = 0
pos = tmpMousePOS.end

viz.startlayer(viz.LINES)
viz.linewidth(10)
viz.vertexcolor(viz.BLACK)
viz.vertex(pos[0],pos[1],0)
viz.vertex(pos[0],pos[1],0)
line1 = viz.endlayer()

VertexLink = viz.link(viz.Mouse,line1.Vertex(1))

yield viztask.waitMouseUp(viz.MOUSEBUTTON_LEFT)
VertexLink.remove()

tmpnumber += 1

:confused::confused::confused::confused: