|
|
Kugeln, Ebenen und Geraden
> |
restart; with (geom3d):
Warning, the name polar has been redefined |
> |
interface (showassumed = 0); |
Definition der Kugel K mit dem Mittelpunkt
M und dem Radius r:
> |
point (M, 2, 2, 2):
r:= 3:
sphere (K, [M, r]):
Equation (K, [x, y, z]); |

Definition der Ebene E mit der Gleichung x − 2∙y + 1,2∙z = 2
:
> |
plane (E, x - 2*y + 1.2*z = 2, [x, y, z]): |
> |
draw ([K, E (color = green,
style = patchnogrid)],
axes = boxed,
orientation = [23, 59],
view = [-2..6, -2..6, -2..6]); |

Definition einer Ebene F:
> |
plane (F, a*x + b*y + z = d, [x, y, z]):
Equation (F); |

Unter welcher Bedingung (cond1) stehen
E und
F senkrecht aufeinander?
> |
ArePerpendicular (E, F, cond1): cond1; |

Neudefinition von F mit a =
1 und b = 1,1:
> |
plane (F, x + 1.1*y + z = d, [x, y, z]):
Equation (F); |

F ist Tangentialebene der Kugel
K, wenn distance (M, F) = r:
> |
distance (M, F);
solve (% = r);
d:= %[1]; |

> |
Equation (E);
Equation (F);
draw ([K, E (color = green, style = patchnogrid),
F (color = red, style = patchnogrid)],
axes = boxed, orientation = [149, 53],
view = [-2..6, -2..6, -2..6]);
|


Bestimmung des Berührpunktes B mit Hilfe der Geraden g.
g geht durch den Kugelmittelpunkt M und steht senkrecht auf der Ebene F:
> |
line (g, [M, [1, 1.1, 1]]):
intersection (B, g, F):
B:= evalf (coordinates (B), 3); |
![B := [3.67, 3.84, 3.67]](images-kugeln/kugeln7.gif)
Gesucht sind alle Kugeln Kt mit folgenden Eigenschaften:
Kt und K sollen gleich groß sein.
E und F sind Tangentialebenen von Kt.
> |
point (Mt, xt, yt, zt):
sphere (Kt, [Mt, r]):
IsTangent (E, Kt, cond[E]):
IsTangent (F, Kt, cond[F]):
cond[E];
cond[F];
|
IsTangent: "unable to determine if 3-.3940552031*abs(xt-2*yt+1.2*zt-2.) is zero"
IsTangent: "unable to determine if 3-.5581455721*abs(xt+1.1*yt+zt-11.574942) is zero"

> |
solve ({cond[E], cond[F]}); |




> |
point (M1, 53.63-16.6*y1, y1,
-36.68+15.5*y1):
point (M2, 129.77-16.6*y2, y2, -112.82+15.5*y2):
point (M3, -10.87-16.6*y3, y3, 17.07+15.5*y3):
point (M4, 65.27-16.6*y4, y4, -59.07+15.5*y4):
sphere (K1, [M1, r]):
sphere (K2, [M2, r]):
sphere (K3, [M3, r]):
sphere (K4, [M4, r]): |
Zeichnung der Kugel K3 für y3 = 0:
> |
sphere (K30, [point (M30, -10.87, 0, 17.07), r]):
draw ([K30,
E (color = green, style = patchnogrid),
F (color = red, style = patchnogrid)],
axes = none,
orientation = [-151, 57],
view = [-15..-7, -5..4, 12..21]); |

Die Mittelpunkte aller vier Kugeln sollen in einer Ebene liegen:
l sei die Schnittgerade von E und F;
Ausgabe der Parametergleichung von l:
> |
intersection (l, E, F):
Equation (l, t); |
![[8.177381935-3.32*t, 3.088690968+.2*t, 3.1*t]](images-kugeln/kugeln15.gif)
P sei irgendein spezieller Punkt auf l, wähle hierfür t = 0;
Die Gerade s soll senkrecht sein auf l und durch P gehen:
> |
r:= array (1..3, [1, r2, r3]);
line (s, [point (P, 8.1774, 3.0887, 0), r]):
ArePerpendicular (s, l, cond[s]):
cond[s]; |
![r := vector([1, r2, r3])](images-kugeln/kugeln16.gif)

Definition zweier Geraden s1 und s2 unter Beachtung von cond[s]:
> |
r1:= array (1..3, [1, 0, 3.32/3.1]):
r2:= array (1..3, [1, 3.32/0.2, 0]):
line (s1, [P, r1]):
line (s2, [P, r2]): |
Definition der Ebene G mit Hilfe von P, s1 und s2:
> |
plane (G, [P, s1, s2]): |
Auf G sollen die Mittelpunkte der vier Kugeln liegen:
> |
for i to 4 do
IsOnObject (M||i, G, cond[M||i]);
y||i:= solve (cond[M||i], y||i);
od: |
geom3d/onobjps: "hint: unable to determine if -1420.255154+553.4868390*y1 is zero"
geom3d/onobjps: "hint: unable to determine if -4037.800988+553.4868390*y2 is zero"
geom3d/onobjps: "hint: unable to determine if 618.6800083+553.4868390*y3 is zero"
geom3d/onobjps: "hint: unable to determine if -1998.865825+553.4868390*y4 is zero"8
> |
for i to 4 do y||i:= y||i od; |




> |
draw ([K1, K2, K3, K4,
E (color = green, style = patchnogrid),
F (color = red, style = patchnogrid)],
axes = none,
orientation = [165, 45],
view = [1..15, -5..12, -7..7]); |

|