Werkzeug erstellen mit alternativen Eingabeobjekten, 2. Nachfrage?

Walter Füchte shared this question 1 week ago
Answered

Das Mittelpunktswerkzeug: "Wähle 2 Punkte, oder eine Strecke oder einen Kreis oder Kegelschnitt..." läßt sehr verschiedene Eingaben zu. Kann man das nach 8 Jahren (siehe Frage von alien) immer noch nicht selber bei benutzerdefinierten Werkzeugen nachmachen? Oder alternativ gefragt: gibt es eine Logikabfrage für Objekte der Art isPoint(a)? Dann könnte man je nach Art der Eingabeobjekte alternativ konstruieren. Beispiel: Punkt+Kegelschnitt -> Polare oder Gerade + Kegelschnitt -> Pol.

Danke für jede Anwort

Comments (6)

photo
1

Sorry, I can't think of a way to do that. What are you trying to do?

photo
1

Object: A

IsPoint:

Länge(Entferne({A}, {(x(A),y(A))})) == 0 

IsLine:

Länge(Entferne({A}, {x(A) x + y(A) y + z(A) = 0})) == 0 

photo
1

Danke für den Vorschlag! leider konnte ich ihn nicht umsetzen, um mein Problem zu lösen:

ein benutzerdefiniertes Werkzeug soll dem Benutzer auffordern: (einen Punkt und einen Kegelschnitt) oder (eine Gerade und einen Kegelschnitt auswählen)

Hat er einen Pkt und einen KS ausgewählt, so wird die Polare gezeichnet

Hat er eine Gerade und einen KS ausgewählt, so wird der Pol gezeichnet.

Als Eingabeobjekt für das Werkzeug kann ich aber nicht "Einen Punkt" oder "Eine Gerade" festlegen.

Erwartet wird von dem neuen Werkzeug zB. ein Punkt, wenn man dann aber eine Gerade eingibt, passiert nichts.

Oder gibt es einen anderen Weg?


W. Füchte

photo
1

Pol/Polare: P ; Kegelschnitt: K

Element({ Gerade(Schneide(K, Element({Tangente(P, K)}, 1)), Schneide(K, Element({Tangente(P, K)}, 2))), Schneide(Tangente(Element({Schneide(K, P)}, 1), K), Tangente(Element({Schneide(K, P)}, 2), K)) }, 1 + !(Länge(Entferne({P}, {(x(P),y(P))})) == 0))


Kein Vorschlag nur ein Weg Punkte und Geraden in GGb zu unterscheiden.

GGb legt bei der Werkzeugerstellung den Typ der Eingabeobjekte fest und überprüft diese bei Anwendung.

Werden die falschen Objekte eingegeben wird ein Fehler ausgegeben. Ergo, ist ein Werkzeug wie du es dir vorstellst so nicht möglich. Ein Umweg ist das eingeben der Koordinaten (x,y,z von Punkt oder Gerade) und eines Wahrheitswertes (istPunk / istGerade).

photo
photo
1

Allenfalls in JS und recht aufwàndig liesse sich dies eventuell machen.

Ich denke, dass wird noch làngere Zeit ein nicht lösbares Problem bleiben.

-----------------------------

Dein konkretes Beispiel Kreis, {polare | pol}

könnte mittels BenutzerWerkzeug wie folgt gelöst werden (nicht getestet).

1. Parameter ein Kreis

2. und 3. Parameter 2 Punkte

Liegt midestens einer der beiden Punkte innerhalb vom Kreis so definieren die beiden Punkte eine polare

Liegen beide Punkte ausserhalb des Kreises so gilt der erste der beiden als pol.

Alternative:

Schneided die Gerade (mittels 2 Punkte) den Kreis so ist sie die polare ansonsten gilt der

erste Punkt als pol

.

Zusatz-idee: vielleicht könnte man im Falle von "pol" bei der Eingabe des zweiten Punktes auf den Ersten klicken.

.

nicht wirklich schön aber vielleicht besser als gar nichts resp. 2 getrennte tools.

photo
1

Danke für die Anregungen! 2-mal denselben Punkt anklicken, geht bei Werkzeugen wohl nicht. Verlangt werden 2 verschiedene Punktobjekte. Wenn die Punkte "gleich" sind (dieselben Koordinaten), wird die Polare, sonst der Pol gezeichnet. Punkte übereinanderzulegen oder sie mit Q:=P zu identifizieren, ist mir zu umständlich. Ich belasse es bei 2 Werkzeugen.

Kegelschnitt-Werkzeuge

© 2017 International GeoGebra Institute