https://github.com/liatemplates/ggbscript
A simple reimplementation of some functions with GGBScript in javascript for LiaScript
https://github.com/liatemplates/ggbscript
geogebra geometry liascript liascript-template markdown math oer
Last synced: 11 months ago
JSON representation
A simple reimplementation of some functions with GGBScript in javascript for LiaScript
- Host: GitHub
- URL: https://github.com/liatemplates/ggbscript
- Owner: LiaTemplates
- License: unlicense
- Created: 2025-02-04T15:48:47.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-23T21:18:45.000Z (about 1 year ago)
- Last Synced: 2025-02-23T21:20:17.026Z (about 1 year ago)
- Topics: geogebra, geometry, liascript, liascript-template, markdown, math, oer
- Language: JavaScript
- Homepage: https://liascript.github.io/course/?https://raw.githubusercontent.com/LiaTemplates/GGBScript/refs/heads/main/README.md
- Size: 31.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GGBScript
Dies ist ein GGBScript JavaScript interpreter für LiaScript.
Es handelt sich um eine experimentelle Version, die noch nicht vollständig ist und mithilfe von ChatGPT entwickelt wurde.
Um die Funktionalität in ein LiaScript-Dokument einzubinden, fügen Sie den folgenden Code ein:
`import: https://raw.githubusercontent.com/LiaTemplates/GGBScript/refs/heads/main/README.md`
Das folgende Beispiel zeigt wie dies funktioniert:
[LiveEditor](https://liascript.github.io/LiveEditor/?/show/code/H4sIAAAAAAAAA62T0W6bMBSG7/0UnndDJIiBqamahajAul60SKjt7nETN/EGBtmHrXurPUOfbMYsCVVpJ0W9wueH//98DjqLD56HRNXUCuZ4C9DoOaWK/ZpuBGzb+1ZztaolcAnTVV3Ra8HueNWUDLiml5fJ7UqJBqjiD5puOVtrWjEh6c1F/CW7mFZr5HlLhD7ijMEWoRhH2Flo68FCNi1ERDG54QRXQkbEN0/2GJHAN6efrGx5RE7MUQNvjErwmj+wtoRerVuwCbFPlujcxqEF7dOXLnqD41nAMahgBIUmCCVHdHY2G8N16g6XvFdn4ekYqlP3qNc6Q+kRrYWjkwwHk0zfrbX/o15r7aYGBqKWc/wWdwf9NDtAR5kDpPqXPAJ++mNmWhQF/q7x+X6D0DezaPGj0NeiEqAd3w1OfNd3Z/7kM0JmAzXgbnvyVv4Ap890itgvJi7eV0FXkZgYS+9IXjiSZ46kdyQHR/rCkT5zpL0jJYdr5Z2lLn9vaukYuM3bf/KVqXvu5KZWfD0wZcaUCQBeNpaWD/JC8273azprdsDv5movkYcDRFcZbaM4l1a+Ulxox3iDmdFt1elm8n8B100U+PMEAAA=)
Schauen Sie sich das Dokument im LiaScript modus an:
[LiaScript](https://liascript.github.io/course/?https://raw.githubusercontent.com/LiaTemplates/GGBScript/refs/heads/main/README.md)
Durch Doppelklick auf die Grafik können Sie den Code bearbeiten und die Änderungen werden sofort angezeigt.
## Punkt
``` js @GGBScript
Titel("Punkt A & B");
// Definiere einen Punkt
const A = Punkt(1, 2, "A");
const B = Punkt([4, 6], "B");
```
## Gerade
1. `Gerade( Punkt, Punkt )`
Erzeugt eine Gerade durch zwei Punkte.
``` js @GGBScript
Titel("Gerade g");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
// Erzeuge eine Gerade
const g = Gerade(A, B, "g");
```
2. `Gerade( Punkt, Gerade )`
Erzeugt eine Gerade durch einen Punkt und eine Gerade.
``` js @GGBScript
Titel("Gerade g1 & g2");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
const C = Punkt(0, 5, "C");
// Erzeuge zwei Geraden
const g1 = Gerade(A, B, "g1");
const g2 = Gerade(C, g1, "g2");
```
## Strecke
1. `Strecke( Punkt, Punkt )`
Erzeugt eine Strecke zwischen zwei Punkten.
``` js @GGBScript
Titel("Strecke S");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
// Erzeuge eine Strecke
const S = Strecke(A, B, "S");
```
2. `Strecke( Punkt, Länge )`
Erzeugt eine Strecke mit einer bestimmten Länge.
``` js @GGBScript
Titel("Strecke s1 & s2 & s3");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
// Erzeuge zwei Strecken
const s1 = Strecke(A, 2, "s1");
const s2 = Strecke(B, 3, "s2");
const s3 = Strecke([1,1], 3, "s3");
```
## Vektor
1. `Vektor( Punkt )`
``` js @GGBScript
Titel("Vektor V1");
// Definiere einen Punkt
const A = Punkt(1, 2, "A");
// Erzeuge einen Vektor
const V1 = Vektor(A, "V1");
const V2 = Vektor([-1,2]);
```
2. `Vektor( Punkt, Punkt )`
``` js @GGBScript
Titel("Vektor V");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
// Erzeuge einen Vektor
const V = Vektor(A, B, "V");
```
## Vieleck
``` js @GGBScript
Titel("Vieleck V");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
const C = Punkt(2, 5, "C");
// Erzeuge ein Vieleck
const V = Vieleck(A, B, C);
```
``` js @GGBScript
Titel("Vieleck V2");
// Hier ist (1,1) der Mittelpunkt und (4,1) ein Punkt auf dem Umfang;
// 6 gibt die Anzahl der Ecken an.
Vieleck([1, 1], [4, 1], 8);
```
``` js @GGBScript
Vieleck([2,2], [5,2], 5, [0,1]);
```
``` js @GGBScript
Diagramm(false)
const V = Vieleck([1, 1], [3, 0], [3, 2], [0, 4]);
Rotation(V, [1, 1], 45);
```
## Polygon
``` js @GGBScript
Titel("Polygon P");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
const C = Punkt(2, 5, "C");
// Erzeuge ein Polygon
const P = Polygon(A, B, C);
```
## Kreis
1. Kreis mit festem Radius `Kreis("Mittelpunkt", 5)`
``` js @GGBScript
Titel("Kreis K")
UserAxisLimits(-2.5, 5, 0, 3)
// Definiere einen Punkt
const A = Punkt(1.5, 1.5, "A")
// Erzeuge einen Kreis
const K = Kreis(A, 1, "K")
```
2. Kreis mit Radius einer Strecke `Kreis("M", "Strecke1")`
``` js @GGBScript
Titel("Kreis K2")
UserAxisLimits(-2.5, 5, 0, 3)
// Definiere Punkte
const A = Punkt(1, 1, "A")
const B = Punkt(3, 2, "B")
// Erzeuge eine Strecke
const S = Strecke(A, B, "Strecke1")
// Erzeuge einen Kreis
const K2 = Kreis(A, S, "K2")
```
3. Kreis mit Radius aus Abstand zweier Punkte `Kreis("M", "P2")`
``` js @GGBScript
Titel("Kreis K3")
UserAxisLimits(-2.5, 5, 0, 3)
// Definiere Punkte
const A = Punkt(1, 1, "A")
const B = Punkt(3, 2, "B")
// Erzeuge einen Kreis
const K3 = Kreis(A, B, "K3")
```
4. Kreis durch drei Punkte `Kreis("A", "B", "C")`
``` js @GGBScript
Titel("Kreis K4")
UserAxisLimits(-2.5, 5, 0, 3)
// Definiere Punkte
const A = Punkt(1, 1, "A")
const B = Punkt(3, 2, "B")
const C = Punkt(2, 3, "C")
// Erzeuge einen Kreis
Kreis("A", "B", "C");
```
5. Kreis mit Richtung einer Geraden `Kreis("M", 5, "Gerade1")`
``` js @GGBScript
Titel("Kreis K5")
UserAxisLimits(-2.5, 5, 0, 3)
// Definiere Punkte
const A = Punkt(1, 1, "A")
const B = Punkt(3, 2, "B")
// Erzeuge eine Gerade
const G = Gerade(A, B, "Gerade1")
// Erzeuge einen Kreis
Kreis("A", 1, "Gerade1");
```
6. Kreis mit Richtung eines Vektors `Kreis("M", 5, "Vektor1")`
``` js @GGBScript
Titel("Kreis K6")
UserAxisLimits(-2.5, 5, 0, 3)
// Definiere Punkte
const A = Punkt(1, 1, "A")
const B = Punkt(3, 2, "B")
// Erzeuge einen Vektor
const V = Vektor(A, B, "Vektor1")
// Erzeuge einen Kreis
Kreis("A", 1, "Vektor1");
```
## Ellipse
1. Ellipse mit festem Radius `Ellipse("Mittelpunkt", 5, 3)`
``` js @GGBScript
Titel("Ellipse E")
// UserAxisLimits(-2.5, 5, 0, 3)
// Definiert einen Mittelpunkt "M1"
Punkt(0, 0, "M1");
// Erzeugt eine Ellipse mit Mittelpunkt "M1", horizontaler Halbachse 5, vertikaler Halbachse 3 und Rotation 30°:
Ellipse("M1", 5, 3);
```
## Verschiebung
``` js @GGBScript
Titel("Verschiebung");
// Definiere einen Punkt
const A = Punkt(1, 2, "A");
// Verschiebe den Punkt
const B = Verschiebung(A, 2, 3, "B");
```
---
x =
@input
\
y =
@input
``` js @GGBScript
Titel("Verschiebung 2");
// Definiere Punkte
const A = Punkt(1, 2, "A");
const B = Punkt(4, 6, "B");
const C = Punkt(2, 5, "C");
// Erzeuge ein Polygon
const P = Polygon(A, B, C);
// Verschiebe das Polygon
const P2 = Verschiebung(P, @input(`x`), @input(`y`), "P2");
Farbe(P2, "lightblue");
```
## Parallele
``` js @GGBScript
// Definiere Punkte
let A = Punkt(1, 2, "A");
let B = Punkt(4, 6, "B");
let C = Punkt(2, 5, "C");
// Erzeuge eine Gerade
let g = Gerade(A, B, "g");
// Erzeuge eine Parallele
let p = Parallele(C, g, "p");
```
## Mittelpunkt
A = (
@input
,
@input
)
``` js @GGBScript
// Definiere Punkte
let A = Punkt(@input(`A0`), @input(`A1`), "A");
let B = Punkt(1, 6, "B");
let C = Punkt(2, 5, "C");
// Erzeuge ein Polygon
const P = Polygon(A, B, C);
Mittelpunkt(A, B, C);
```
## Abstand
``` js @GGBScript
// Definiere Punkte
let A = Punkt(1, 2, "A");
let B = Punkt(4, 6, "B");
let C = Punkt(2, 5, "C");
let D = Punkt(6, 3, "D");
Polygon(A, B, C);
let M = Mittelpunkt(A, B, C);
// Berechne den Abstand der Geraden
let d = Abstand(M, D);
```
---
``` js @GGBScript
// Definiere Punkte
let A = Punkt(1, 2, "A");
let B = Punkt(4, 6, "B");
let C = Punkt(2, 5, "C");
let D = Punkt(6, 3, "D");
// Erzeuge zwei Geraden
let g1 = Line(A, B, "g1");
let g2 = Strecke(C, D, "g2");
// Berechne den Abstand der Geraden
let d = Abstand(g1, g2);
```
## Schnittpunkt
``` js @GGBScript
// Definiere Punkte
let A = Punkt(1, 2, "A");
let B = Punkt(4, 6, "B");
let C = Punkt(2, 5, "C");
let D = Punkt(6, 3, "D");
// Erzeuge zwei Geraden
let g1 = Line(A, B, "g1");
let g2 = Strecke(C, D, "g2");
// Berechne den Schnittpunkt der Geraden
let S = Schnittpunkt(g1, g2);
Winkel(A, S, C);
```
## Winkel
``` js @GGBScript
// Definiere Punkte
let A = Punkt(1, 2, "A");
let B = Punkt(4, 6, "B");
let C = Punkt(2, 5, "C");
Strecke(A, B, "s1");
Strecke(B, C, "s2");
// Erzeuge ein Polygon
let w = Winkel(A, B, C);
```
## Lot
``` js @GGBScript
// Definiere Punkte
let A = Punkt(1, 2, "A");
let B = Punkt(4, 6, "B");
let C = Punkt(2, 5, "C");
// Erzeuge ein Gerade
let G = Gerade(A, B, "G");
// Erzeuge ein Lot
let L = Lot(C, G, "L");
```
## Text
``` js @GGBScript
// Definiere einen Punkt
let A = Punkt(1, 2, "A");
// Erzeuge einen Text
let T = Text([1,2.3], "Text");
```
# Rotation
A = (
@input
,
@input
)
B = (
@input
,
@input
)
C = (
@input
,
@input
)
Rotation:
@input
°
``` js @GGBScript
UserAxisLimits(0,150,0,60);
const A = Punkt(@input(`A0`), @input(`A1`), "A");
const B = Punkt(@input(`B0`), @input(`B1`), "B");
const C = Punkt(@input(`C0`), @input(`C1`), "C");
const P = Polygon("A", "B", "C");
Farbe(P, "red");
const M = Mittelpunkt(P);
const P2 = Rotation(P, M, @input(`rotation`));
Farbe(P2, "blue");
Kreis(M, 16, "Kreis");
```
## Vektor
``` js @GGBScript
// Erzeuge einen Vektor
let V = Vektor([1,2], [4,6], "V");
```