Code:
import viz
import vizact
import vizshape
from math import sin, cos, tan, pi
viz.go()
def createCube(cubeSize=2):
viz.startLayer(viz.QUADS)
#front
viz.vertex(0,0,0)
viz.vertex(cubeSize,0,0)
viz.vertex(cubeSize,cubeSize,0)
viz.vertex(0,cubeSize,0)
#bottom
viz.vertexColor(viz.RED)
viz.vertex(0,0,0)
viz.vertex(cubeSize,0,0)
viz.vertex(cubeSize,0,cubeSize)
viz.vertex(0,0,cubeSize)
#left
viz.vertexColor(viz.YELLOW)
viz.vertex(0,0,0)
viz.vertex(0,cubeSize,0)
viz.vertex(0,cubeSize,cubeSize)
viz.vertex(0,0,cubeSize)
#right
viz.vertexColor(viz.BLUE)
viz.vertex(cubeSize,0,0)
viz.vertex(cubeSize,cubeSize,0)
viz.vertex(cubeSize,cubeSize,cubeSize)
viz.vertex(cubeSize,0,cubeSize)
#back
viz.vertexColor(viz.GRAY)
viz.vertex(0,0,cubeSize)
viz.vertex(cubeSize,0,cubeSize)
viz.vertex(cubeSize,cubeSize,cubeSize)
viz.vertex(0,cubeSize,cubeSize)
#top
viz.vertexColor(viz.GREEN)
viz.vertex(0,cubeSize,0)
viz.vertex(cubeSize,cubeSize,0)
viz.vertex(cubeSize,cubeSize,cubeSize)
viz.vertex(0,cubeSize,cubeSize)
cube = viz.endLayer()
#rotate = vizact.spin(x=0,y=45,z=0,speed=90)
#myQuad.addAction(rotate)
return cube
def createCylinder(radius=3,height=5,detail=10):
angleIncrement = 360/detail;
#create a group of everything
cylinder = viz.addGroup()
viz.startLayer(viz.POLYGON)
#viz.vertex(0,0,0)
for i in range(detail):
x = radius * cos(((i*angleIncrement)*pi)/180)
y = radius * sin(((i*angleIncrement)*pi)/180)
# x = radius * cos(i*angleIncrement)
# y = radius * sin(i*angleIncrement)
print("x is " + str(x))
print("y is " + str(y))
viz.normal(x,0,y)
viz.vertex(x,0,y)
bottom = viz.endLayer(parent=cylinder)
#make the top
viz.startLayer(viz.POLYGON)
#viz.vertex(0,height,0)
for i in range(detail):
x = radius * cos(((i*angleIncrement)*pi)/180)
y = radius * sin(((i*angleIncrement)*pi)/180)
viz.vertex(x,height,y)
top = viz.endLayer(parent=cylinder)
#now make all the sides
viz.startLayer(viz.QUAD_STRIP)
viz.vertexColor(viz.GRAY)
for i in range(detail):
x = radius * cos(((i*angleIncrement)*pi)/180)
y = radius * sin(((i*angleIncrement)*pi)/180)
viz.vertex(x,0,y)
viz.vertex(x,height,y)
x = radius * cos(((0*angleIncrement)*pi)/180)
y = radius * sin(((0*angleIncrement)*pi)/180)
viz.vertex(x,0,y)
viz.vertex(x,height,y)
sides = viz.endLayer(parent=cylinder)
return cylinder
box1 = createCube(9);
box1.setPosition(0,5,0)
head = createCube(2)
head.addParent(box1)
head.setEuler(180,0,0)
head.setPosition(3,8,0)
arm1 = createCylinder(1,9,20)
arm1.addParent(box1)
arm1.setPosition(-3,-2,3)
arm1.setEuler(0,0,-20)
arm2 = createCylinder(1,9,20)
arm2.addParent(box1)
arm2.setPosition(11,-2,3)
arm2.setEuler(0,0,20)
I am creating objects and assigning them to values through function return values. For some reason, everything I create is duplicated somehow and I'm at a loss. Am I already placing the object, then placing it again by assigning it to a value? New to Python and WorldViz.