From f0a6f930187eb0226ddd4735feba1d93667b8a58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@othello.ch>
Date: Thu, 19 May 2022 22:12:27 +0200
Subject: add dreieck3d9.pov

---
 buch/papers/nav/images/Makefile       |  7 ++++
 buch/papers/nav/images/common.inc     | 60 +++++++++++++++++++------------
 buch/papers/nav/images/dreieck3d9.pov | 66 +++++++++++++++++++++++++++++++++++
 3 files changed, 111 insertions(+), 22 deletions(-)
 create mode 100644 buch/papers/nav/images/dreieck3d9.pov

(limited to 'buch')

diff --git a/buch/papers/nav/images/Makefile b/buch/papers/nav/images/Makefile
index bbdea2f..da4defa 100644
--- a/buch/papers/nav/images/Makefile
+++ b/buch/papers/nav/images/Makefile
@@ -114,3 +114,10 @@ dreieck3d8.jpg:	dreieck3d8.png
 dreieck3d8.pdf:	dreieck3d8.tex dreieck3d8.jpg
 	pdflatex dreieck3d8.tex
 
+dreieck3d9.png:	dreieck3d9.pov common.inc
+	povray +A0.1 $(POVRAYOPTIONS) -Odreieck3d9.png dreieck3d9.pov
+dreieck3d9.jpg:	dreieck3d9.png
+	convert dreieck3d9.png -density 300 -units PixelsPerInch dreieck3d9.jpg
+dreieck3d9.pdf:	dreieck3d9.tex dreieck3d9.jpg
+	pdflatex dreieck3d9.tex
+
diff --git a/buch/papers/nav/images/common.inc b/buch/papers/nav/images/common.inc
index e2a1ed0..2c0ae6e 100644
--- a/buch/papers/nav/images/common.inc
+++ b/buch/papers/nav/images/common.inc
@@ -12,6 +12,7 @@ global_settings {
 
 #declare imagescale = 0.034;
 
+#declare O = <0, 0, 0>;
 #declare A = vnormalize(< 0, 1, 0>);
 #declare B = vnormalize(< 1, 2, -8>);
 #declare C = vnormalize(< 5, 1, 0>);
@@ -102,8 +103,8 @@ union {
 	#declare pp = vnormalize(p - vdot(n, p) * n);
 	#declare qq = vnormalize(q - vdot(n, q) * n);
 	intersection {
-		sphere { <0, 0, 0>, 1 + staerke }
-		cone { <0, 0, 0>, 0, 1.2 * vnormalize(w), r }
+		sphere { O, 1 + staerke }
+		cone { O, 0, 1.2 * vnormalize(w), r }
 		plane { -vcross(n, qq) * vdot(vcross(n, qq), pp), 0 }
 		plane { -vcross(n, pp) * vdot(vcross(n, pp), qq), 0 }
 	}
@@ -132,6 +133,35 @@ union {
 	}
 #end
 
+#macro ebenerwinkel(a, p, q, s, r, farbe)
+	#declare n = vnormalize(-vcross(p, q));
+	#declare np = vnormalize(-vcross(p, n));
+	#declare nq = -vnormalize(-vcross(q, n));
+//	arrow(a, a + n, 0.02, White)
+//	arrow(a, a + np, 0.01, Red)
+//	arrow(a, a + nq, 0.01, Blue)
+	intersection {
+		cylinder { a - (s/2) * n, a + (s/2) * n, r }
+		plane { np, vdot(np, a) }
+		plane { nq, vdot(nq, a) }
+		pigment {
+			farbe
+		}
+		finish {
+			metallic
+			specular 0.5
+		}
+	}
+#end
+
+#macro komplement(a, p, q, s, r, farbe)
+	#declare n = vnormalize(-vcross(p, q));
+//	arrow(a, a + n, 0.015, Orange)
+	#declare m = vnormalize(-vcross(q, n));
+//	arrow(a, a + m, 0.015, Pink)
+	ebenerwinkel(a, p, m, s, r, farbe)
+#end
+
 #declare fett = 0.015;
 #declare fein = 0.010;
 
@@ -143,29 +173,15 @@ union {
 #declare gruen = rgb<0,0.6,0>;
 #declare blau = rgb<0.2,0.2,0.8>;
 
+#declare kugelfarbe = rgb<0.8,0.8,0.8>;
+#declare kugeltransparent = rgbt<0.8,0.8,0.8,0.5>;
+
+#macro kugel(farbe)
 sphere {
 	<0, 0, 0>, 1
 	pigment {
-		color rgb<0.8,0.8,0.8>
+		color farbe
 	}
 }
+#end
 
-//union {
-//	sphere { A, 0.02 }
-//	sphere { B, 0.02 }
-//	sphere { C, 0.02 }
-//	sphere { P, 0.02 }
-//	pigment {
-//		color Red
-//	}
-//}
-
-//union {
-//	winkel(A, B, C)
-//	winkel(B, P, C)
-//	seite(B, C, 0.01)
-//	seite(B, P, 0.01)
-//	pigment {
-//		color rgb<0,0.6,0>
-//	}
-//}
diff --git a/buch/papers/nav/images/dreieck3d9.pov b/buch/papers/nav/images/dreieck3d9.pov
new file mode 100644
index 0000000..24d3843
--- /dev/null
+++ b/buch/papers/nav/images/dreieck3d9.pov
@@ -0,0 +1,66 @@
+//
+// dreiecke3d8.pov
+//
+// (c) 2022 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+//
+#include "common.inc"
+
+//union {
+//	seite(A, B, fein)
+//	seite(B, C, fein)
+//	seite(A, C, fein)
+//	seite(A, P, fein)
+//	seite(B, P, fett)
+//	seite(C, P, fett)
+//	punkt(A, fein)
+//	punkt(B, fett)
+//	punkt(C, fett)
+//	punkt(P, fett)
+//	pigment {
+//		color dreieckfarbe
+//	}
+//	finish {
+//		specular 0.95
+//		metallic
+//	}
+//}
+
+//dreieck(A, B, C, White)
+
+kugel(kugeltransparent)
+
+ebenerwinkel(O, C, P, 0.01, 1.001, rot)
+ebenerwinkel(P, C, P, 0.01, 0.3, rot)
+komplement(P, C, P, 0.01, 0.3, Yellow)
+
+ebenerwinkel(O, B, P, 0.01, 1.001, blau)
+ebenerwinkel(P, B, P, 0.01, 0.3, blau)
+komplement(P, B, P, 0.01, 0.3, Green)
+
+arrow(B, 1.5 * B, 0.015, White)
+arrow(C, 1.5 * C, 0.015, White)
+arrow(P, 1.5 * P, 0.015, White)
+
+union {
+	cylinder { O, P, 0.7 * fein }
+
+	cylinder { P, P + 3 * B, 0.7 * fein }
+	cylinder { O, B + 3 * B, 0.7 * fein }
+
+	cylinder { P, P + 3 * C, 0.7 * fein }
+	cylinder { O, C + 3 * C, 0.7 * fein }
+
+	pigment {
+		color White
+	}
+}
+
+#declare imagescale = 0.044;
+
+camera {
+	location <40, 20, -20>
+	look_at <0, 0.24, -0.20>
+	right x * imagescale
+	up y * imagescale
+}
+
-- 
cgit v1.2.1