WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Create line and vertex (https://forum.worldviz.com/showthread.php?t=2167)

Chrissy2009 07-18-2009 05:49 AM

Create line and vertex
 
Hello,

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

Code:

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:

Code:

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 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!
Code:

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:


All times are GMT -7. The time now is 02:12 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC