particle component
This commit is contained in:
26
scripts/geometry.js
Normal file
26
scripts/geometry.js
Normal file
@@ -0,0 +1,26 @@
|
||||
var Sphere = {};
|
||||
Sphere.volume = function(r) { return Math.pi*r*r*r*4/3; };
|
||||
Sphere.random = function(r,theta,phi)
|
||||
{
|
||||
if (typeof r === 'number') r = [r,r];
|
||||
theta ??= [0,1];
|
||||
phi ??= [-0.5,0.5];
|
||||
if (typeof theta === 'number') theta = [theta,theta];
|
||||
if (typeof phi === 'number') phi = [phi,phi];
|
||||
|
||||
var ra = Math.random_range(r[0],r[1]);
|
||||
var ta = Math.turn2rad(Math.random_range(theta[0],theta[1]));
|
||||
var pa = Math.turn2rad(Math.random_range(phi[0],phi[1]));
|
||||
return [
|
||||
ra*Math.sin(ta)*Math.cos(pa),
|
||||
ra*Math.sin(ta)*Math.sin(pa),
|
||||
ra*Math.cos(ta)
|
||||
];
|
||||
}
|
||||
|
||||
var Circle = {};
|
||||
Circle.area = function(r) { return Math.pi*r*r; };
|
||||
Circle.random = function(r,theta)
|
||||
{
|
||||
return Sphere.random(r,theta).xz;
|
||||
}
|
||||
Reference in New Issue
Block a user