#1
|
|||
|
|||
Draw Line between Points selected by mouse
Hi,
the following program should draw a line between two in the "world" selected by mouse. As viz.screentoworld(viz.mousepos()) returns a vector - is there an easier way to figure out the point the mouse was pressed at (e.g. return value [3,4,5]? I guess I really don't understand viz.screentoworld(viz.mousepos()) that much - where does this vector start - at the viewpoint? Thank you, Johannes import viz viz.go() SPIsSet,EPIsSet=0,0 startPoint=[0,0,0] endPoint=[0,0,0] def mousedown(button): # if button == viz.MOUSEBUTTON_LEFT: global startPoint,SPIsSet global endPoint,EPIsSet if SPIsSet==0: startPoint=viz.screentoworld(viz.mousepos()) print 'startPoint:',startPoint SPIsSet=1 elif (SPIsSet!=0 & EPIsSet==0): endPoint=viz.screentoworld(viz.mousepos()) print 'ePoint:',endPoint EPIsSet=1 drawLine(startPoint, endPoint) EPIsSet=0 SPIsSet=0 else: print 'forgot option 3' def drawLine(begin, end): viz.clearcolor(0.0,0.0,0.0) viz.vertexcolor(2, 4, 4) viz.startlayer(viz.LINE_LOOP) viz.vertex(begin) viz.vertex(end) line = viz.endlayer() #posBox=viz.add('../resources/models/box.wrl') #posBox.scale(0.01,0.01,0.01) #posBox.translate(begin) #Create callbacks for timer events and mouse click events viz.callback(viz.MOUSEDOWN_EVENT,mousedown) |
Thread Tools | |
Display Modes | Rate This Thread |
|
|