mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-11 01:04:07 +02:00
refactor
This commit is contained in:
@@ -4,32 +4,22 @@ use <../../__comm__/__to_ang_vect.scad>;
|
|||||||
|
|
||||||
function _q_rotate_p_3d(p, a, v) =
|
function _q_rotate_p_3d(p, a, v) =
|
||||||
let(
|
let(
|
||||||
half_a = a / 2,
|
uv = v / norm(v),
|
||||||
axis = v / norm(v),
|
s = sin(a / 2) * uv,
|
||||||
s = sin(half_a),
|
w = sin(a) * uv,
|
||||||
x = s * axis.x,
|
|
||||||
y = s * axis.y,
|
|
||||||
z = s * axis.z,
|
|
||||||
w = cos(half_a),
|
|
||||||
|
|
||||||
x2 = x + x,
|
|
||||||
y2 = y + y,
|
|
||||||
z2 = z + z,
|
|
||||||
|
|
||||||
xx = x * x2,
|
xx = 2 * s.x ^ 2,
|
||||||
yx = y * x2,
|
yy = 2 * s.y ^ 2,
|
||||||
yy = y * y2,
|
zz = 2 * s.z ^ 2,
|
||||||
zx = z * x2,
|
|
||||||
zy = z * y2,
|
xy = 2 * s.x * s.y,
|
||||||
zz = z * z2,
|
xz = 2 * s.x * s.z,
|
||||||
wx = w * x2,
|
yz = 2 * s.y * s.z
|
||||||
wy = w * y2,
|
|
||||||
wz = w * z2
|
|
||||||
)
|
)
|
||||||
p * [
|
p * [
|
||||||
[1 - yy - zz, yx + wz, zx - wy],
|
[1 - yy - zz, xy - w.z, xz + w.y],
|
||||||
[yx - wz, 1 - xx - zz, zy + wx],
|
[xy + w.z, 1 - xx - zz, yz - w.x],
|
||||||
[zx + wy, zy - wx, 1 - xx - yy]
|
[xz - w.y, yz + w.x, 1 - xx - yy]
|
||||||
];
|
];
|
||||||
|
|
||||||
function _rotx(pt, a) =
|
function _rotx(pt, a) =
|
||||||
|
Reference in New Issue
Block a user