WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   How to draw a circle? (https://forum.worldviz.com/showthread.php?t=3738)

Saz 05-04-2011 06:15 AM

How to draw a circle?
 
Hi,

I'm trying to draw two flat circles side by side on which I need to put textures on (a sphere is no good due to the curvature). Is there a simple command to create a circle in Vizard (I have looked but the nearest so far is a sphere) or would I have to use an mathematical operator to do this?

Thanks

Jeff 05-04-2011 07:31 PM

You could create circular images in an image editor and apply those to a texture quad. Use an image format that supports alpha channels to make the areas outside the circle transparent.

The Python Imaging Library has functions to draw 2D shapes but I'm not sure if you can easily add textures to them.

Jeff 05-04-2011 07:33 PM

Here's a link to our kb article about PIL:

http://kb.worldviz.com/articles/470

Saz 05-05-2011 04:58 AM

Hi Jeff,
thanks for that, I've decided to use to quads and apply the textures to them instead. I'm trying to code for the textures in these two quads to both move at independent speeds in a downward motion (like lines moving down a page). In the past I've used the viz.MainView.move command but obviously that moves the whole viewpoint and so the whole quad moves (and then disappears) rather than the textures inside them.

Here is the code written so far:
Code:

import viz
#Import vizjoy module
import vizjoy 
import time
import math
import vizact
import vizinfo
import vizshape

viz.displaymode(1024, 512)
viz.go(viz.FULLSCREEN)
viz.mouse(viz.OFF)
vizact.ontimer(32,viz.quit) #runs file for 32 secs


subject = viz.input('What is the participant number?')

#define speed
MOVE_SPEED = 0.1041 #scalar constant for speed gain

viz.clearcolor(0.5,0.5,0.5)
viz.MainView.setPosition(0,.5,0)



#add the road texture
road = viz.add('roadld3.png')

#create a texture quad1 to add the road texture to
#and place it over ground
quad1 = viz.addTexQuad()
quad1.setScale(0.25,0.5,0.25)
quad1.setPosition(0.75,0.5,3)
quad1.setEuler(0,0,0)
quad1.texture(road)

#create a texture quad2 to add the road texture to
#and place it over ground
quad2 = viz.addTexQuad()
quad2.setScale(0.25,0.5,0.25)
quad2.setPosition(-0.75,0.5,3)
quad2.setEuler(0,0,0)
quad2.texture(road)


#move quad 1
def moveQuad1():
       
        viz.MainView.move(0,0,MOVE_SPEED,viz.BODY_ORI)

moveQuad1()
#call a timer every frame to check if road needs to be added
vizact.ontimer(0, moveQuad1)

Is there tutorial that explains how to assign different speeds (or speeds at all) to the textures inside quads? Any help is much appreciated
Thanks

Jeff 05-05-2011 03:25 PM

You can try changing the texture coordinates to move the image on the quad. In the Textures section of Vizard Teacher in a Book, available from our downloads page, there is an example that moves clouds across a window by manipulating the texture coordinates of the window object.


All times are GMT -7. The time now is 11:22 PM.

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