BTW, if anybody is curious here's the OpenSCAD program that generated
that diagram. It's got some examples of using trig to position and size
things.
n = 3;
t = 2;
r = 100;
a = 360/n;
module label(t) { text(t, halign="center", valign="center"); }
circle(r=r);
color("gray") rotate(180) translate([0,0,1]) circle(r=r, $fn=n);
color("white") translate([0,0,2]) {
rotate(a/2) translate([0,-t/2]) square([r,t]);
rotate(-a/2) translate([0,-t/2]) square([r,t]);
translate([0,-t/2]) square([r*cos(a/2),t]);
}
A = [0,0];
B = [r*cos(a/2), r*sin(a/2)];
C = [r*cos(a/2), 0];
D = [r*cos(a/2), -r*sin(a/2)];
color("black") translate([0,0,3]) {
translate(A) label("A");
translate(B) label("B");
translate(C) label("C");
translate(D) label("D");
}
Come to think of it, I could have positioned B and D by translating them
out to X=+r and then rotating, rather than by calculating the
coordinates. (Rotation to restore them to being upright left as an
exercise for the reader.) I can't immediately think of a non-trig way
to position C.
Thanks Jordan, that piece of code's a keeper- besides the circumscribed
circle, it also neatly give the radius of the inscribed circle as well.
On 2023-05-24 10:02, Jordan Brown wrote:
BTW, if anybody is curious here's the OpenSCAD program that generated
that diagram. It's got some examples of using trig to position and
size things.
n = 3;
t = 2;
r = 100;
a = 360/n;
module label(t) { text(t, halign="center", valign="center"); }
circle(r=r);
color("gray") rotate(180) translate([0,0,1]) circle(r=r, $fn=n);
color("white") translate([0,0,2]) {
rotate(a/2) translate([0,-t/2]) square([r,t]);
rotate(-a/2) translate([0,-t/2]) square([r,t]);
translate([0,-t/2]) square([r*cos(a/2),t]);
}
A = [0,0];
B = [r*cos(a/2), r*sin(a/2)];
C = [r*cos(a/2), 0];
D = [r*cos(a/2), -r*sin(a/2)];
color("black") translate([0,0,3]) {
translate(A) label("A");
translate(B) label("B");
translate(C) label("C");
translate(D) label("D");
}
Come to think of it, I could have positioned B and D by translating
them out to X=+r and then rotating, rather than by calculating the
coordinates. (Rotation to restore them to being upright left as an
exercise for the reader.) I can't immediately think of a non-trig way
to position C.
OpenSCAD mailing list
To unsubscribe send an email todiscuss-leave@lists.openscad.org
A baby can be defined as an ego with a noise at one end and a smell at the other.
Your job as parents is to teach them to control all three.
My job as a grandad is to tell you how you are doing it all wrong!