1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-06 23:06:43 +02:00

curve nose

This commit is contained in:
Justin Lin
2021-07-20 12:47:46 +08:00
parent f4fa300fac
commit ccfca4e246

View File

@@ -6,6 +6,10 @@ use <shape_trapezium.scad>;
use <util/reverse.scad>; use <util/reverse.scad>;
use <util/dedup.scad>; use <util/dedup.scad>;
use <turtle/lsystem3.scad>; use <turtle/lsystem3.scad>;
use <curve.scad>;
use <sweep.scad>;
use <paths2sections.scad>;
use <ptf/ptf_rotate.scad>;
hilbert_dragon(); hilbert_dragon();
@@ -101,19 +105,20 @@ module hilbert_dragon() {
} }
module mouth() { module mouth() {
path1 = curve(0.4, [[0, -8, -1], [0, -11, 0], [0, -12, 5], [0, -9, 5], [0, -4, 6], [0, -0.5, 8], [0, 5, 6.5], [0, 8, 6], [0, 12, 0], [0, 16, 0]]);
path2 = [for(p = path1) ptf_rotate(p, [0, -12, 0]) * 0.9 + [-2, 0, 0]];
path3 = [for(i = [0:len(path1) - 1]) [-i / 6 - 1.5, i / 1.65 - 9, 0]];
path4 = [for(p = path3) [-p[0], p[1], p[2]]];
path5 = [for(p = path2) [-p[0], p[1], p[2]]];
translate([0, 0, -2]) translate([0, 0, -2])
rotate([90, 0, -90]) rotate([90, 0, -90])
ellipse_extrude(8, slices = 2) sweep(paths2sections([path1, path2, path3, path4, path5]));
polygon(
shape_trapezium([4, 15],
h = 22,
corner_r = 0)
);
translate([0, 0, -3]) translate([0, 0, -3])
rotate([90, 0, -90]) rotate([90, 0, -90])
ellipse_extrude(6, slices = 4) ellipse_extrude(5.5, slices = 4)
polygon( polygon(
shape_trapezium([6, 20], shape_trapezium([6, 20],
h = 20, h = 20,
corner_r = 0) corner_r = 0)
@@ -131,14 +136,14 @@ module hilbert_dragon() {
} }
module one_eye() { module one_eye() {
translate([-5, 3, -2]) translate([-5, 2.6, -2])
rotate([-15, 0, 75]) rotate([-10, 0, -25])
scale([1, 1, 1.5]) scale([1, 1, 2])
sphere(1.5, $fn = 5); sphere(1.75, $fn = 5);
translate([-5.5, 3.5, -2.5]) translate([-5.25, 3.5, -2.5])
rotate([-15, 0, 75]) rotate([-15, 0, 75])
sphere(0.5, $fn = 8); sphere(0.65, $fn = 7);
} }
module one_beard() { module one_beard() {
@@ -152,12 +157,12 @@ module hilbert_dragon() {
rotate([0, angy_angz[0] + 15, angy_angz[1]]) rotate([0, angy_angz[0] + 15, angy_angz[1]])
translate([0, 0, -25 / 2]) translate([0, 0, -25 / 2])
scale(1.15) { scale(1.15) {
scale([0.8, 0.9, 1]) hair(); scale([0.8, 0.9, 1]) hair();
translate([0, 0, 2]) { translate([0, 0, 2]) {
rotate(-90) { rotate(-90) {
one_horn(); one_horn();
mirror([-1, 0, 0]) one_horn(); mirror([-1, 0, 0]) one_horn();
} }
mouth(); mouth();