![]() |
#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 |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
![]() |
||||
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 |