![]() |
|
#1
|
|||
|
|||
|
How can I apply physics to Donut or Ring?
In Vizard we have collide shapes for our physical objects
collideBox collideSphere collideCapsule collideMesh collidePlane collideBox, collideSphere & collideCapsule can get affected by dynamic forces like gravity but collideMesh objects are unaffected by forces and can only provide a solid collision area for other objects. I want inner side of donut or ring too to have physical properties. Can you help me with the logic to get this thing done? |
|
#2
|
|||
|
|||
|
There is no built-in torus shape in the physics engine, but you can approximate one using multiple sphere shapes. Here is a sample script that simulates a torus using 18 spheres:
Code:
import viz
import math
import vizact
import vizshape
viz.go()
viz.phys.enable()
ground = viz.addChild('ground.osgb')
ground.collidePlane()
RADIUS = 1.0
TUBE_RADIUS = 0.5
torus = vizshape.addTorus(radius=RADIUS,tubeRadius=TUBE_RADIUS)
for deg in range(0,360,20):
x = math.sin(viz.radians(deg)) * RADIUS
z = math.cos(viz.radians(deg)) * RADIUS
torus.collideSphere(radius=TUBE_RADIUS,pos=(x,0,z))
ball = vizshape.addSphere(radius=0.6)
ball.collideSphere()
def Reset():
torus.setPosition([0,2,10])
ball.setPosition([0.6,5,10.6])
vizact.onkeydown('r',Reset)
Reset()
|
![]() |
| Tags |
| collide, donut, physical, physics, shape |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Apply a texture to a submesh | EnvisMJ | Vizard | 5 | 12-29-2011 11:34 AM |
| RE:Slide Joints and physics optimization | nige777 | Vizard | 4 | 06-22-2009 05:21 PM |
| Physics and Haptics | jalvarez | Vizard | 3 | 07-16-2008 04:03 PM |
| collision with physics enabled | joeymax | Vizard | 2 | 04-17-2008 03:49 PM |
| Physics engine question | adimov | Vizard | 2 | 07-22-2004 01:33 PM |