Wie ändert man den Abstand der Gitterlinien mit Javascript?

Sander Tacker shared this question 3 years ago
Answered

Hallo,


ich habe eine Geogebra-Datei entwickelt, mit der man trainieren kann, zu einer vorgegebenen linearen Funktionsgleichung den Graphen zu zeichnen. Es gibt verschiedene Schwierigkeitsstufen und die Anzahl der richtigen Antworten wird gezählt.

Es funktioniert alles gut, aber für das nächste Level möchte in den Abstand der Gitterlinien ändern, und zwar mit Javascript. Im Eigenschaften-Menu (Reiter "Koordinatengitter") kann ich zwar die Werte für den x- und y-Gitterabstand manuell festlegen, aber ich möchte die Werte nicht dauerhaft von Beginn an ändern, sondern erst, wenn eine bestimmte Schwierigkeitsstufe erreicht ist.


Ich habe schon folgende Javascript-Methoden ausprobiert, die aber nicht das tun, was ich will:


"setAxisSteps"

- ändert die Abstände der Zahlen an den Achsen, aber nicht den Abstand der Gitterlinien. Ich möchte beide Abstände unabhängig voneinander ändern können.


"setCoordSystem" - beeinflusst ebenfalls nur die Zahlen an den Achsen (xmin,xmax,ymin,ymax).


"setAxesRatio" - passt die Werte ymin und ymax entsprechend einem vorgegebenen x/y-Verhältnis an.


Gibt es eine Methode, um den Abstand der Gitterlinien mit Javaskript zu ändern?

Ich freue mich über jede Hilfe!

Sander

Best Answer
photo

Hi,


with magnetism (scipt OnUpdate A)

...

Comments (5)

photo
1

Hi,


Without script, simple to create the desired grid...

Files: grid.ggb
photo
1

Meines Wissens geht das nicht mit einem offiziellen JS-Befehl.


Was allenfalls gehen könnte (ich habe es selbst noch nie erprobt):

Mit dem setXML(String xmlString) direkt in <euclidianView>... Die beiden Paramter <grid distX="0.5" distY="0.5" anpassen.

Der Nachteil dieser Methode besteht darin, dass der Filename verloren geht.

Ob diese Methode auch im Browser resp. GeoGebraTube möglich ist weiss ich nicht (ich vermute ja).

.

Dann bleibt noch die Version die Grid-Linien selber zu konstruiren (in einer Folge[] die Eckpunkte berücksichtigend).

Allerdings ist dann das magnetische Einrasten auf diese Linien-Schnittpunkte nicht möglich. Theoretisch könnte man das mit einem Listener erledigen. Falls der Student jedoch Objekte erstellen oder Löschen kann, muss man damit rechnen, dass sich der Listener abschaltet, sodass die Kontrolle verloren geht.


Zuguterletzt wäre allenfalls noch ein Umschalten auf die Grafik-2 denkbar, wo das Gitter fix (in einem anderen Raster) eingestllt ist.

photo
1

Danke für die Vorschläge. Die Datei zum magnetische Einrasten von Patrick tut genau das von dir Beschriebene.


Das Umstellen auf die Grafik-2 reicht leider nicht, da ich (ab einem bestimmten Level) in jeder Aufgabe ein anderes Koordinatengitter zufällig erzeugen will, damit die Schüler den Anstieg nicht einfach durch Kästchenzählen, sondern durch Ablesen von DeltaY und DeltaX längs der Achsen trainieren.


Sander

photo
photo
1

Hi,


with magnetism (scipt OnUpdate A)

...

photo
1

Wow, this solution is perfect. I never thought of drawing the grid lines myself!

To create magnetism in an OnUpdate event is also really cool.


Thanks a lot, I pondered quite a while over this issue!


Sander

photo
© 2020 International GeoGebra Institute