1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-12 09:44:16 +02:00

dot notation indexing

This commit is contained in:
Justin Lin
2021-12-04 08:56:09 +08:00
parent e7bfb3c951
commit 90a29ceecd
10 changed files with 21 additions and 33 deletions

View File

@@ -41,9 +41,9 @@ module tail() {
module dragon_and_perl() {
function __angy_angz(p1, p2) =
let(
dx = p2[0] - p1[0],
dy = p2[1] - p1[1],
dz = p2[2] - p1[2],
dx = p2.x - p1.x,
dy = p2.y - p1.y,
dz = p2.z - p1.z,
ya = atan2(dz, sqrt(pow(dx, 2) + pow(dy, 2))),
za = atan2(dy, dx)
) [ya, za];

View File

@@ -41,9 +41,9 @@ module tail() {
module infinity_dragon() {
function __angy_angz(p1, p2) =
let(
dx = p2[0] - p1[0],
dy = p2[1] - p1[1],
dz = p2[2] - p1[2],
dx = p2.x - p1.x,
dy = p2.y - p1.y,
dz = p2.z - p1.z,
ya = atan2(dz, sqrt(pow(dx, 2) + pow(dy, 2))),
za = atan2(dy, dx)
) [ya, za];

View File

@@ -25,9 +25,9 @@ module torus_knot_dragon() {
function __angy_angz(p1, p2) =
let(
dx = p2[0] - p1[0],
dy = p2[1] - p1[1],
dz = p2[2] - p1[2],
dx = p2.x - p1.x,
dy = p2.y - p1.y,
dz = p2.z - p1.z,
ya = atan2(dz, sqrt(dx * dx + dy * dy)),
za = atan2(dy, dx)
) [ya, za];

View File

@@ -1,8 +1,8 @@
function __angy_angz(p1, p2) =
let(
dx = p2[0] - p1[0],
dy = p2[1] - p1[1],
dz = p2[2] - p1[2],
dx = p2.x - p1.x,
dy = p2.y - p1.y,
dz = p2.z - p1.z,
ya = atan2(dz, sqrt(dx * dx + dy * dy)),
za = atan2(dy, dx)
) [ya, za];

View File

@@ -1 +1 @@
function __to2d(p) = [p[0], p[1]];
function __to2d(p) = [p.x, p.y];

View File

@@ -1 +1 @@
function __to3d(p) = [p[0], p[1], 0];
function __to3d(p) = [p.x, p.y, 0];

View File

@@ -1,6 +1,6 @@
function __to_3_elems_ang_vect(a) =
let(leng = len(a))
leng == 3 ? a :
leng == 2 ? [a[0], a[1], 0] : [a[0], 0, 0];
leng == 2 ? [a.x, a.y, 0] : [a.x, 0, 0];
function __to_ang_vect(a) = is_num(a) ? [0, 0, a] : __to_3_elems_ang_vect(a);

View File

@@ -7,7 +7,7 @@ function __trapezium(length, h, round_r) =
l_half_trapezium = [
for(i = 0; i <= to; i = i + 1)
let(pt = r_half_trapezium[to - i])
[-pt[0], pt[1]]
[-pt.x, pt.y]
]
)
concat(

View File

@@ -1,7 +1,7 @@
use <../util/slice.scad>;
function _convex_hull_lt_than_by_xy(p1, p2) =
p1[0] < p2[0] || (p1[0] == p2[0] && p1[1] < p2[1]);
p1.x < p2.x || (p1.x == p2.x && p1.y < p2.y);
function _convex_hull_sort_by_xy(lt) =
let(leng = len(lt))
@@ -15,15 +15,7 @@ function _convex_hull_sort_by_xy(lt) =
// oa->ob ct_clk : greater than 0
function _convex_hull_impl_dir(o, a, b) =
let(
ox = o[0],
oy = o[1],
ax = a[0],
ay = a[1],
bx = b[0],
by = b[1]
)
(ax - ox) * (by - oy) - (ay - oy) * (bx - ox);
(a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);
function _convex_hull_convex_hull_lower_m(chain, p, m) =
(m >= 2 && _convex_hull_impl_dir(chain[m - 2], chain[m - 1], p) <= 0) ? _convex_hull_convex_hull_lower_m(chain, p, m - 1) : m;

View File

@@ -1,13 +1,9 @@
function is_zero(p) = p == [0, 0, 0];
function _cmp(a, b) =
let(
ax = a[0], ay = a[1], az = a[2],
bx = b[0], by = b[1], bz = b[2]
)
ax != bx ? ax < bx :
ay != by ? ay < by :
az < bz;
a.x != b.x ? a.x < b.x :
a.y != b.y ? a.y < b.y :
a.z < b.z;
function _convex_hull_sort_by_xyz(pts) =
let(leng = len(pts))