@absulit/points
Version:
A Generative Art library made in WebGPU
48 lines (47 loc) • 1.53 kB
JavaScript
/* @ts-self-types="./math.d.ts" */
const PI=`const PI = 3.14159265;`;const TAU=`const TAU = 6.2831853;`;const PHI=`const PHI = 1.61803398;`;const E=`const E = 2.71828182;`;const polar=`
fn polar(distance: f32, radians: f32) -> vec2f {
return vec2f(distance * cos(radians), distance * sin(radians));
}
`;const rotateVector=`
fn rotateVector(p:vec2f, rads:f32 ) -> vec2f {
let s = sin(rads);
let c = cos(rads);
let xnew = p.x * c - p.y * s;
let ynew = p.x * s + p.y * c;
return vec2(xnew, ynew);
}
`;const angle=`
fn angle(p1:vec2f, p2:vec2f) -> f32 {
let delta = p2 - p1;
let distance = length(delta);
return atan2(delta.y, delta.x);
}
`;const rotXAxis=`
fn rotXAxis(rads:f32) -> mat4x4f {
return mat4x4f(
1.0, 0.0, 0.0, 0.0,
0.0, cos(rads), -sin(rads), 0.0,
0.0, sin(rads), cos(rads), 0.0,
0.0, 0.0, 0.0, 1.0
);
}
`;const rotYAxis=`
fn rotYAxis(rads:f32) -> mat4x4f {
return mat4x4f(
cos(rads), 0.0, sin(rads), 0.0,
0.0, 1.0, 0.0, 0.0,
-sin(rads), 0.0, cos(rads), 0.0,
0.0, 0.0, 0.0, 1.0
);
}
`;const rotZAxis=`
fn rotZAxis(rads:f32) -> mat4x4f {
return mat4x4f(
cos(rads), -sin(rads), 0.0, 0.0,
sin(rads), cos(rads), 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
);
}
`;export{E,PHI,PI,TAU,angle,polar,rotXAxis,rotYAxis,rotZAxis,rotateVector};