Arbeits-File
===>Testversion 2.1 <===

Autor: Rolf Wirz

Benötigt vorgängigen Run von "GeoSourceCode.nb".
Zur Benutzung: In den Beispielen können die Eingabewerte überschrieben werden.

Falls in bisher unbekannten Fällen infolge spezieller Datenkonstellationen Probleme auftreten:Bitte unverzüglich dem Autor melden!
(Vormane.Name@hta-bi.bfh.ch)

Autor: Rolf Wirz

Daraus ein Package zu machen ist problematisch wegen den Pfad- und Context-Setzungen, die vom Benutzer auszuführen sind.

(Autor: Rolf Wirz)

1. ==> Berechnung SchnittpunktGerade-Ebene
 2. ==> Umklappung zum Schnitt von zwei Punkten um je eine Gerade im Raum
 3. ==> Volumen Tetraeder gegeben durch 4 Punkte
 4. ==> Konstruktion von regelmässigen Figuren in der Grundebene zu zwei gegebenen Punkten
 5. ==> Drehung eines Punktes um einen bestimmten Winkel α zu einer Achse
        (α = 90 o ===> Senkrechte)
 6. ==> Drehung um eine Achse im Raum um α oder-α
 7. ==> Berechnung Schnittpunkt Kreis1 mit Kreis2
 8. ==> Schnittpunkt Kugel1 mit Kugel2 und Kugel3
 9. ==> Berechnung Schnittpunkt Kugel1 mit Kugel2 und Ebene
10. ==> Berechnung Schnittpunkt Kugel mit Ebene1 und Ebene2
11. ==> Berechnung Schnittpunkt Ebene1 mit Ebene2 und Ebene3
12. ==> Berechnung Schnittpunkt Gerade1 mit Gerade2 in der Grundebene
13. ==> Berechnung Schnittpunkt Kreis mit Gerade
14. ==> Berechnung des Abstands von einer Geraden in einer Ebene zu einem Punkt in der Ebene
15. ==> Berechnung Abstand von einer Ebene im Raum zu einem Punkt
16. ==> Mittelpunkt einer Strecke
17. ==> Mittelsenkrechte einer Strecke
18. ==> Berechnung der Winkelhalbierenden
19. ==> Lotfusspunkt von einem Punkt auf eine Gerade in der Grundebene
20. ==> Lotfusspunkt von einem Punkt auf eine Ebene
21. ==> Punkt auf einer Geraden, der von Q aus unter dem Winkel α gesehen wird

Für eine eventuelle Fehlerlokalisation (Debugging für Fortgeschrittene Benutzer)

debuggingVariable = 
        1 ;  var1Stop2Never3Use = 
        debuggingVariable ;

1.  Berechnung Schnittpunkt
Gerade-Ebene

Eingabe: Ebene durch drei Punkte p1 ,p2 ,p3 und Gerade durch zwei Punkte q1,q2
Ausgabe: Schnittpunkt

Beispiel:

p1 = {3.554, 
          7.24, -2.964};

    p2 = {2, -1, 98/27};

    p3 = {0, 5 + 1/3, 3.8};

  
  

    q1 = {56.33, -2.8666, 11};

    q2 = {12/5, 18/7,  
          3*Pi/(9 + 17  Pi)};

      

    schnitt[p1, p2, p3, q1, q2]

Beispiel:

schnitt[{1, 
        4, 0}, {2, 4, 0}, {0, 4, 1}, {0, 2, 0}, {0, 3, 0}]

2. Umklappung zum Schnitt von zwei Punkten um je eine Gerade im Raum

Eingabe: Ebene durch drei Punkte pm, p1, p2. 
(pm, p1) bilden eine Gerade, um die q1 umgeklappt wird.
(pm, p2) bilden eine Gerade, um die q2 umgeklappt wird.
Distanz(pm,q1) ungefähr Distanz(pm,q2),
Abweichung der Umklappradien in Prozent des grösseren Radius eingeben.
Ausgabe: Umgeklappter Punkt resp. Punkte bei Abweichung

Beispiel:

pm = {3.554, 
          7.24, -2.964};

    p1 = {2, -1, 98/27};

    p2 = {0, 5 + 1/3, 3.8};

  
  

    q1 = {56.33, -2.8666, 11};

    q2 = {12/5, 18/7,  
          3*Pi/(9 + 17  Pi)};

  


    ab = 3;

  

    uPunkt[pm, p1, p2, q1, q2, ab]

Beispiel:

pm = {0, 0, 0};
p1 = {1, 0, 0};
p2 = {0, 1, 0};

    
q1 = {1, -1, 0};
q2 = {-1, 1, 0};
ab = 2;

    
      uPunkt[pm, p1, p2, q1, q2, 
      ab]

Beispiel:

pm = {0, 3, 2};
p1 = {1, 3, 2};
p2 = {0, 4, 2};

    
q1 = {1, 2, 5};
q2 = {-1, 4, 5};

    
      uPunkt[pm, p1, p2, q1, q2, 
      5]

Beispiel:

pm = {0, 3, 2};
p1 = {1, 3, 2};
p2 = {0, 4, 2};

    
q1 = {1, 2, 5.1};
q2 = {-1, 4, 5};

    
      uPunkt[pm, p1, p2, q1, q2, 
      5]

3. Volumen Tetraeder gegeben durch 4 Punkte

Eingabe: Punkte p1, p2, p3,p4. 
Ausgabe: Volumen

Beispiel:

p1 = {3.554, 
          7.24, -2.964};

    p2 = {2, -1, 98/27};

    p3 = {0, 5 + 1/3, 3.8};

    p4 = {7, 9, 11};

  

    volumen[p1, p2, p3, p4]

Beispiel:

p1 = {0, 0, 0};
p2 = {1, 0, 0};
p3 = {0, 1, 0};
p4 = {0, 0, 1};

  
volumen[p1, p2, p3, p4]

4. Konstruktion von regelmässigen Figuren in der Grundebene zu zwei gegebenen Punkten

Eingabe: Punkte p1, p2
Ausgabe: 3, Punkt eines gleichseitigen Dreiecks (Rechtsdrehumlaufsinn) in der Ebene

Beispiel:

p1 = {3.554, 7.24};

    p2 = {2, -1};

  

    dreieck[p1, p2]

Beispiel:

p1 = {0, 0};
p2 = {1, 0};

  
dreieck[p1, p2]

5. Drehung eines Punktes um einen bestimmten Winkel α zu einer Achse
 (α = 90 o ===> Senkrechte)

Eingabe: Punkte p1, p2, Drehwinkel α in Grad 
Ausgabe: Punkt von Figuren (Rechtsdrehumlaufsinn) bei Rechtsdrehung von p2 um p1 um α in Grad

Beispiel:

(* Zwei Punkte p1, p2,  
      Winkelα *) 
 (* Beispiel,  
      Werte können abgeändert werden!!! *) p1 = {3.554, 7.24};

    p2 = {2, -1};

    α =  45;

 (* 
      Output 1*) 

    drehPunkt[p1, p2, α];
 (* 
      Output 2*) 

    drehPunktSkizze[p1, p2, α]

Beispiel:

p1 = {0, 0};
p2 = {5, 0};
α =  90;

  
drehPunkt[p1, p2, α];

Beispiel:

p1 = {0, 0};
p2 = {-5, 0};
α =  270;

  
drehPunkt[p1, p2, α];

6. Drehung um eine Achse im Raum um α oder -α

Eingabe: Punkte pGerade1, pGerade2 einer Gerade, Punkt punktQ im Raum, der um den Winkel α un die Gerade gedreht werden soll.
Ausgabe: Gedrehter Punkt um +/- α

Werteausgabe

Beispiel:

pGerade1 = {1, 1, 1};

    pGerade2 = {2, 3, 5};

    punktQ = {1, -1, 2};

    α = 80;    

  
raumDrehPunkt[pGerade1, pGerade2, 
      punktQ, α ]

Beispiel:

pGerade1 = {0, 0, 0};
pGerade2 = {0, 0, 1};
punktQ = {1, 0, 0};
α = 45;   

  
raumDrehPunkt[pGerade1, pGerade2, punktQ, α ]

Beispiel:

pGerade1 = {0, 0, 0};
pGerade2 = {1, 1, 1};
punktQ = {1, 0, 0};
α = 120;   

  
raumDrehPunkt[pGerade1, pGerade2, punktQ, α ]

Plots

(* Zwei Punkte pGerade1, pGerade2,  Punkt punktQ,  
      Winkelα,  
      p (PlottRange) *) 
 (* Beispiel,  
      Werte können abgeändert werden!!! *)

Beispiel:

pGerade1 = {1, 1, 1};
pGerade2 = {2, 3, 5};
punktQ = {1, -1, 2};
α = 30;   
pRange = 6;
pNowVar = 9;     
raumDrehPunktPlot[
      pGerade1, pGerade2, punktQ, α , pRange];

7. Berechnung Schnittpunkt
Kreis1 mit Kreis2

Eingabe: Mittelpunkte p1, p2, Radien r1, r2
Ausgabe: Schnittpunkt 1, Schnittpunkt 2

Beispiel

p1 = {1, 1}; p2 = {3, 4};  r1 = 4;  
    r2 = 3;
kreisSchnitt[p1, p2, r1, r2]

Beispiel:

p1 = {0, 0}; p2 = {6, 0};  r1 = 5;  
    r2 = 5;
kreisSchnitt[p1, p2, r1, r2]

Beispiel:

p1 = {2, 2}; p2 = {2, 8};  r1 = 5;  
    r2 = 5;
kreisSchnitt[p1, p2, r1, r2]

8. Berechnung Schnittpunkt
Kugel1 mit Kugel2 und Kugel3

Eingabe: Mittelpunkte p1, p2, p3, Radien r1, r2, r3
Ausgabe: Schnittpunkt 1, Schnittpunkt 2

Beispiel

p1 = {1, 1, 1}; p2 = {3, 4, 2}; p3 = {2, 3, 3};  r1 = 4;  r2 = 5; 
    r3 = 4.5;
kugelSchnitt[p1, p2, p3, r1, r2, r3]

Beispiel:

p1 = {0, 0, 0}; p2 = {6, 0, 0}; p3 = {3, 4, 0};  r1 = 5;  r2 = 5; 
    r3 = 5;
kugelSchnitt[p1, p2, p3, r1, r2, r3]

9. Berechnung Schnittpunkt
Kugel1 mit Kugel2 und Ebene

Eingabe: Mittelpunkte m1, m2, Radien r1, r2,  Ebene durch 3 Punkte p1, p2, p3
Ausgabe: Schnittpunkt 1, Schnittpunkt 2

Beispiel

pm1 = {1, 1, 1}; pm2 = {3, 4, 2};  r1 = 4;  
    r2 = 5;
p1 = {2, 2, 2}; p2 = {3, 4, 3}; 
    p3 = {5, 4, 6};
kugel2ebene1Schnitt[pm1, pm2, r1, r2,  p1, p2,  
      p3]

Beispiel:

Beispiel:

pm1 = {0, 0, 0}; pm2 = {8, 0, 0};  r1 = 5;  
    r2 = 5;
p1 = {0, 0, 0}; p2 = {1, 0, 0}; 
    p3 = {0, 1, 0};
kugel2ebene1Schnitt[pm1, pm2, r1, r2,  p1, p2,  p3]

10. Berechnung Schnittpunkt
Kugel mit Ebene1 und Ebene2

Eingabe: Mittelpunkt m1, Radius r1,  Ebene1 durch 3 Punkte p1, p2, p3, Ebene2 durch 3 Punkte q1, q2, q3
Ausgabe: Schnittpunkt 1, Schnittpunkt 2

Beispiel

pm1 = {1, 1, 1};  r1 = 4;
p1 = {2, 2, 2}; p2 = {3, 4, 3}; 
    p3 = {5, 4, 6};
q1 = {0, 0, 0}; q2 = {2, 5, 1}; 
    q3 = {7, 8, 9};
kugel1ebene2Schnitt[pm1, r1,  p1, p2,  p3, q1, q2, q3]

Beispiel:

pm1 = {0, 0, 0};  r1 = 4;
p1 = {0, 0, 0}; p2 = {1, 0, 0}; 
    p3 = {0, 1, 0};
q1 = {0, 0, 0}; q2 = {1, 0, 0}; 
    q3 = {0, 0, 1};
kugel1ebene2Schnitt[pm1, r1,  p1, p2,  p3, q1, q2, q3]

11. Berechnung Schnittpunkt
Ebene1 mit Ebene2 und Ebene3

Eingabe: Ebene1 durch 3 Punkte p1, p2, p3, Ebene2 durch 3 Punkte q1, q2, q3, Ebene3 durch 3 Punkte u1, u2, u3
Ausgabe: Schnittpunkt

Beispiel

p1 = {2, 2, 2}; p2 = {3, 4, 3}; 
    p3 = {5, 4, 6};
q1 = {0, 0, 0}; q2 = {2, 5, 1}; 
    q3 = {7, 8, 9};
u1 = {1, 2, 3}; u2 = {9, 6, 3}; u3 = {7, 4, 5}; 
    ebene3Schnitt[ p1, p2,  p3, q1, q2, q3, u1, u2, u3]

Beispiel:

p1 = {2, 2, 2}; p2 = {3, 4, 3}; 
    p3 = {5, 4, 6};
q1 = {4, -1, 5}; q2 = {2, 2, 2}; 
    q3 = {7, 8, 9};
u1 = {1, 2, 3}; u2 = {9, 6, 3}; u3 = {2, 2, 2}; 
    ebene3Schnitt[ p1, p2,  p3, q1, q2, q3, u1, u2, u3]

12. Berechnung Schnittpunkt
Gerade1 mit Gerade2 in der Grundebene

Eingabe: Gerade1 durch 2 Punkte p1, p2, Gerade2 durch 2 Punkte q1, q2
Ausgabe: Schnittpunkt

Beispiel

p1 = {2, 2}; p2 = {3, 4};
q1 = {2, 5}; q2 = {7, 8};
gerade2Schnitt[ p1, p2,  q1, q2]

Beispiel:

p1 = {2, 2}; p2 = {3, 4};
q1 = {2, 2}; q2 = {7, 8};
gerade2Schnitt[ p1, p2,  q1, q2]

13. Berechnung Schnittpunkt
Kreis mit Gerade

Eingabe: Mittelpunkte p1, p2, Radien r1, r2
Ausgabe: Schnittpunkt 1, Schnittpunkt 2

Beispiel

p1 = {1, 1}; p2 = {3, 4}; p1 = {2, 1};  
    r = 4;
geradeKreisSchnitt[ p1, p2, p1, r]

Beispiel:

p1 = {2, 1}; p2 = {2, 2}; p1 = {2, 0};  
    r = 4;
geradeKreisSchnitt[ p1, p2, p1, r]

14. Berechnung des Abstands
von einer Geraden in einer Ebene zu einem Punkt in der Ebene

Eingabe: Gerade durch Punkte p1, p2, dazu Punkt Q ausserhalb der Geraden
Ausgabe: Abstand

Beispiel

p1 = {1, 1}; p2 = {2, 4}; pQ = {2, 1};
geradePunktAbstand[ p1, p2, pQ]

Beispiel:

p1 = {1, 1}; p2 = {2, 1}; pQ = {5, 7};
geradePunktAbstand[ p1, p2, pQ]

Beispiel:

p1 = {2, 1}; p2 = {1, 1}; pQ = {5, 7};
geradePunktAbstand[ p1, p2, pQ]

Beispiel:

p1 = {1, 1}; p2 = {2, 1}; pQ = {5, -7};
geradePunktAbstand[ p1, p2, pQ]

15. Berechnung Abstand
von einer Ebene im Raum zu einem Punkt

Eingabe: Ebene durch Punkte p1, p2, p2, dazu Punkt Q ausserhalb der Ebene
Ausgabe: Abstand

Beispiel

p1 = {1, 2, 3}; p2 = {2, 3, 4}; p3 = {3, 5, 6}; 
    pQ = {1, 0, 5};
ebenePunktAbstand[ p1, p2, p3, pQ]

Beispiel:

p1 = {1, 1, 1}; p2 = {1, 1, 2}; p3 = {1, 2, 4}; 
    pQ = {1, 0, 5};
ebenePunktAbstand[ p1, p2, p3, pQ]

Beispiel:

p1 = {1, 1, 1}; p2 = {1, 1, 2}; p3 = {1, 2, 4}; 
    pQ = {4, 0, 5};
ebenePunktAbstand[ p1, p2, p3, pQ]

Beispiel:

p2 = {1, 1, 1}; p1 = {1, 1, 2}; p3 = {1, 2, 4}; 
    pQ = {4, 0, 5};
ebenePunktAbstand[ p1, p2, p3, pQ]

16. Berechnung des Mittelpunkts einer Strecke

Eingabe: Strecke durch Punkte p1, p2
Ausgabe: Mittelpunkt

Beispiel

p1 = {1, 1, 1}; p2 = {2, 4, 1};
mittelpunktStrecke[ p1, p2]

Beispiel:

p1 = {1, 1}; p2 = {2, 4};
mittelpunktStrecke[ p1, p2]

17. Berechnung der Mittelsenkrechte einer Strecke in der Ebene

Eingabe: Strecke durch Punkte p1, p2
Ausgabe: Mittelpunkt

Beispiel:

p1 = {1, 1}; p2 = {2, 4};
mittelsenkrechte[ p1, p2]

Beispiel:

p1 = {-1, 0}; p2 = {1, 0};
mittelsenkrechte[ p1, p2]

18. Berechnung der Winkelhalbierenden

Eingabe: Strecken durch Punkte (p0, p1) und (p0, p2)
Ausgabe: Winkelhalbierende durch Punkte (p0, pW)

Beispiel:

p1 = {1, 1}; p2 = {2, 4}; p3 = {5, 8};
winkelhalbierende[ p1, p2, p3]

Beispiel:

p1 = {0, 0}; p2 = {1, 1}; 
    p3 = {-1, -1};
winkelhalbierende[ p1, p2, p3]

Beispiel:

p1 = {0, 0}; p2 = {1, 1}; p3 = {1, -1};
winkelhalbierende[ p1, p2, p3]

19. Lotfusspunkt von einem Punkt auf eine Gerade in der Grundebene

Eingabe: Gerade durch Punkte (p1, p2) und punkt q
Ausgabe: Lotfusspunkt auf der Gerade

Beispiel:

p1 = {1, 1}; p2 = {2, 4};  q = {5, 9};
lotFussPunktGerade[ p1, p2, q]

Beispiel:

p1 = {0, 0}; p2 = {5, 0};  q = {5, 8};
lotFussPunktGerade[ p1, p2, q]

20. Lotfusspunkt von einem Punkt auf eine Ebene

Eingabe: Gerade durch Punkte (p1, p2) und punkt q
Ausgabe: Lotfusspunkt auf der Gerade

Beispiel:

p1 = {1, 1, 1}; p2 = {2, 4, 2}; p3 = {4, 2, 5};  
    q = {5, 9, 3};
lotFussPunktEbene[ p1, p2, p3, q]

Beispiel:

p1 = {1, 1, 0}; p2 = {2, 4, 0}; p3 = {4, 2, 0};  
    q = {5, 9, 3};
lotFussPunktEbene[ p1, p2, p3, q]

Punkt auf einer Geraden, der von Q aus unter dem Winkel α gesehen wird

Eingabe: Gerade durch Punkte (p1, p2) und punkt q, Winkel α
Ausgabe: Punkt auf der Gerade

Beispiel:

p1 = {1, 1}; p2 = {2, 4}; 
    q = {5, 9};  α = 30;
winkelFussPunktGerade[ p1, p2, q, α]

Beispiel:

p1 = {0, 0}; p2 = {1, 0}; 
    q = {0, 5};  α = 45;
winkelFussPunktGerade[ p1, p2, q, α]

Beispiel:

p1 = {0, 0}; p2 = {10, 0}; 
    q = {0, 5};  α = 30;
winkelFussPunktGerade[ p1, p2, q, α]

Beispiel:

p1 = {-10, 0}; p2 = {10, 0}; 
    q = {0, 5};  α = 30;
winkelFussPunktGerade[ p1, p2, q, α]