2 registered members (Akow, 1 invisible),
1,423
guests, and 9
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Angular Velocity
[Re: Marco_Grubert]
#15572
03/12/04 05:30
03/12/04 05:30
|
Joined: Mar 2003
Posts: 5,377 USofA
fastlane69
OP
Senior Expert
|
OP
Senior Expert
Joined: Mar 2003
Posts: 5,377
USofA
|
Well met and thanks Marco. I've been a devotee of the 3DGS PE since hour one and would be thrilled at having input into it's next generation. Until then I trust you don't take our continued posts as personal requests, but rather as an ongoing record of the current PE. Given your statement, we'll be anxiously waiting for your go ahead before we unleash our TRUE wishlist...heheeheh Thanks for the current PE and the future ones !
|
|
|
Re: Angular Velocity
[Re: William]
#15574
04/01/04 04:32
04/01/04 04:32
|
Joined: Dec 2003
Posts: 61 Funkytown, USA
feature_creature
Junior Member
|
Junior Member
Joined: Dec 2003
Posts: 61
Funkytown, USA
|
Please excuse my mis-posting.
Last edited by feature_creature; 04/01/04 04:33.
Curious, but not overwhelmed...demlehwrevo ton tub ,suoiruC
|
|
|
Re: Angular Velocity
[Re: feature_creature]
#15575
05/05/04 11:01
05/05/04 11:01
|
Joined: Sep 2003
Posts: 3,236 San Diego, CA
Marco_Grubert
Expert
|
Expert
Joined: Sep 2003
Posts: 3,236
San Diego, CA
|
Currently this is how it works: rotation is stored as axis of rotation with vector magnitude expressing speed of rotation. phent_getvelocity() returns the following vector: tang_vel = lin_vel + ang_vel x (Rot*point) Where lin_vel is linear velocity in global coordinates, ang_vel is the above mentioned vector (global), Rot is the entity's rotation matrix and point is the passed in local coordinate. Since point gets rotated depending on the object's orientation constant angular velocity will yield varying tangential velocity. For example given an object spinning counter-clockwise around z, when point=(1,0,0) the tangential velocity at (1,0,0) will initally be returned and be (0, 1, 0). At the next frame, however, the local point (1,0,0) has been rotated by 90 degrees and is now at (0, 1, 0) and the corresponding tangential velocity vector is (-1,0,0). Next frame: (-1, 0, 0) point with (0, -1, 0) tang_vel.
Is this useful behavior ? If not what kind of information would you like to have returned ?
|
|
|
Re: Angular Velocity
[Re: Marco_Grubert]
#15576
05/05/04 11:59
05/05/04 11:59
|
Joined: Mar 2003
Posts: 5,377 USofA
fastlane69
OP
Senior Expert
|
OP
Senior Expert
Joined: Mar 2003
Posts: 5,377
USofA
|
Quote:
Is this useful behavior ? If not what kind of information would you like to have returned ?
My only problem is that there are more situations where I want the angular velocity rather than tangential velocity; I suspect this might be the case with most of us.
As such, with the exception of a sphere or cube that have a Unitary Moment of Inertia, solving for angular velocity for arbritrary geometries becomes cumbersome or downright impossible without Matrix Algebra.
IMO, it would be better if you could obtain rpm directly instead of m/s.
|
|
|
Re: Angular Velocity
[Re: Marco_Grubert]
#15578
05/06/04 05:45
05/06/04 05:45
|
Joined: Mar 2003
Posts: 5,377 USofA
fastlane69
OP
Senior Expert
|
OP
Senior Expert
Joined: Mar 2003
Posts: 5,377
USofA
|
Quote:
The idea behind phent_getvelocity() was to find out how fast a certain point is moving. When you bump into another object you can call getvelocity in the event function to determine if it was a high-speed crash or just a minor dent.
Which is perfect for Linear collisions, but, and this is just my opinion, it doesn't seem to be so hot for rotational collisions.
Question: How is rotational collsions handled?
For eg, I have two thik disks rotating about their z-axis (vinyl record like). As I bring their edges, together slowly, adiabatically (so as to minmize the linear collision dynamics), at some point the edges come into contact and the collision is purely rotational. By my current understanding of the PE a tangential velocity will be calculated for each of the points of contact and then some kind of momentum conservation is done? By your words then, this is done on global coordinates...how is this then translated to local motion???
Im thinking that perhaps, alot of the jitters and other myriad of collision bugs could in fact be due to inconsistencies in the rotational collision or in the handling of rotations?
Quote:
I could easily return the angular velocity vector - would that help ?
I would much rather display three ang vel vectors (omega(about z), omega(about y), and omega(about x)) and if I'm constantly rotating about z, for eg, omega(z) would remain constant and the others zero. This is motivated in part by the fact that when I torque an entity, I do so about a local axis. Thus, one can see a positive corrolation between ang vel change (ang acc or alpha) and applied torque. In the above record example, if I had two columns, one for torque(about axis) and another for alpah(about axis), I could for example see a "10" in the z-torque column and then see that my ang_vel(about z) is steadily increasing.
When it comes to car physics, if these omegas are local, then you align the x axis with the front of the car. If omega(x) gets too out of hand, you can either pause the physics engine and my.roll it back into place or keep the PE on and torque it back into place.
BUT THATS JUST ME.....OTHERS NEED TO SPEAK ON THIS ISSUE TO REALLY GAUGE WHETHER THIS IS THE BEST WAY TO GO AND IF ANYTHING i SAID MAKES SENSE .
|
|
|
|