mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-20 05:21:38 +02:00
add lavender
This commit is contained in:
107
examples/tiles/lavender.scad
Normal file
107
examples/tiles/lavender.scad
Normal file
@@ -0,0 +1,107 @@
|
||||
use <pie.scad>;
|
||||
use <hull_polyline2d.scad>;
|
||||
use <ptf/ptf_rotate.scad>;
|
||||
use <experimental/tile_penrose3.scad>;
|
||||
|
||||
n = 5;
|
||||
radius = 30;
|
||||
$fn = 6;
|
||||
|
||||
lavender(n, radius);
|
||||
|
||||
module lavender(n, radius) {
|
||||
module draw(tris, radius) {
|
||||
module draw_tri(type, points) {
|
||||
module draw_acute_pie(p, r, a) {
|
||||
hull() {
|
||||
linear_extrude(layer_thickness * 2)
|
||||
offset(-radius / 175) {
|
||||
translate(p)
|
||||
rotate(a)
|
||||
pie(r * 1.1, 72);
|
||||
}
|
||||
|
||||
linear_extrude(layer_thickness * 3)
|
||||
offset(-radius / 100) {
|
||||
translate(p)
|
||||
rotate(a)
|
||||
pie(r, 72);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module draw_obtuse_pie(p, r, a) {
|
||||
hull() {
|
||||
linear_extrude(layer_thickness * 2)
|
||||
offset(-radius / 175) {
|
||||
translate(p)
|
||||
rotate(a)
|
||||
pie(r * 1.1, 36);
|
||||
}
|
||||
|
||||
linear_extrude(layer_thickness * 3)
|
||||
offset(-radius / 100) {
|
||||
translate(p)
|
||||
rotate(a)
|
||||
pie(r, 36);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
v1 = points[0] - points[1];
|
||||
v2 = points[2] - points[1];
|
||||
r = norm(v1) / 2;
|
||||
clk = cross(v1, v2);
|
||||
|
||||
color("Lavender")
|
||||
if(type == "ACUTE") {
|
||||
if(clk < 0) {
|
||||
v = (points[0] + points[1]) / 2 - points[0];
|
||||
a = atan2(v[1], v[0]);
|
||||
draw_acute_pie(points[0], r, a);
|
||||
}
|
||||
else {
|
||||
v = (points[2] + points[1]) / 2 - points[2];
|
||||
a = atan2(v[1], v[0]) - 108;
|
||||
draw_acute_pie(points[0], r, a);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(clk < 0) {
|
||||
v = (points[0] + points[1]) / 2 - points[0];
|
||||
a = atan2(v[1], v[0]);
|
||||
draw_obtuse_pie(points[0], r, a);
|
||||
}
|
||||
else {
|
||||
v = (points[0] - points[2]);
|
||||
a = atan2(v[1], v[0]) + 180;
|
||||
draw_obtuse_pie(points[0], r, a);
|
||||
}
|
||||
}
|
||||
|
||||
color("Lime")
|
||||
hull() {
|
||||
linear_extrude(layer_thickness)
|
||||
|
||||
polygon(points);
|
||||
|
||||
linear_extrude(layer_thickness * 2)
|
||||
offset(-radius / 175)
|
||||
polygon(points);
|
||||
}
|
||||
|
||||
color("Maroon")
|
||||
linear_extrude(layer_thickness)
|
||||
offset(radius / 50)
|
||||
polygon(points);
|
||||
}
|
||||
|
||||
for(t = tris) {
|
||||
draw_tri(t[0], t[1] * radius);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
layer_thickness = radius / 50;
|
||||
draw(tile_penrose3(n), radius);
|
||||
}
|
Reference in New Issue
Block a user