![]() |
Darstellungen und Berechnungen am Dreieck
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
dieses Programm ist eines der komplexesten, die ich bisher geschrieben habe. Es untersucht (Darstellung und Berechnung) verschiedene Punkte, Geraden, Kreise, ..., die man an einem Dreieck betrachten kann. Gerade in den letzten Jahren ist das scheinbar "vollständig" untersuchte Dreieck wieder zum Forschungsthema geworden. Unter ![]() Die zu zeichnenden Punkte, Geraden und Kreise wählt man in den rechten Listen aus. Eine Vielzahl von Einstellungsmöglichkeiten (Größe, Gitter, Achsen, ...) sowie verschiedene Weiterverarbeitungsmöglichkeiten (Druck, Speichern, Kopieren) sind vorhanden. Über eine Animation (Schalter, F2) können die drei Eckpunkte entweder waagerecht oder senkrecht kontinuierlich verschoben werden. Die zu zeichnenden Stücke werden auch berechnet. In einer Liste werden die Koordinaten der Punkte, Längen von Strecken und Gleichungen von Geraden, verschiedene Werte von Kreisen, ... angezeigt. Aufgrund der großen Anzahl darstellbarer Objekte ist deren Auswahl nicht ganz so einfach. Aus diesem Grund sind unter dem Menüpunkt Themen einige besondere Beziehungen am Dreieck vordefiniert. Ansonsten kann ich nur sagen, dass es eine Menge Arbeit war, die vorhandenen Objekte am Dreieck hinzubekommen. :wink: Ihr könnt ja einmal Strg + F12 drücken. Dann werden alle Punkte, Geraden, Kreise, Kegelschnitte ... angezeigt. Wer dann eine Animation laufen lässt, will seinen Computer quälen. :mrgreen: Strg + F12 schaltet auch wieder zurück. Viel Spaß beim Testen. Hinweise auf Fehler sind, wie immer, gern willkommen. Hinweis: Auch in der Entwickler-Ecke habe ich das Programm vorgestellt. Beste Grüße Mathematiker Nachtrag: In einem Anflug von Wahnsinn habe ich das falsche Programm angehängt. :wall: Jetzt ist es richtig. Rev 1: erste Änderungen durchgeführt, u.a. einen Splitter eingefügt, einen Schalter für schnelles Entfernen der Markierungen und kleinere Fehler behoben Rev 2: Fenstergröße ist beliebig veränderbar. Die Punkte können in der Simulation auch um den Ursprung gedreht werden. Geschwindigkeit der Simulation ist regelbar. |
AW: Darstellungen und Berechnungen am Dreieck
>dieses Programm ist eines der komplexesten, die ich bisher geschrieben habe.
Na, wenn ich an Deine Sternhimmelanimation denke. Die erscheint mir noch weitaus aufwendiger. Das Programm ist gut, aber natürlich habe ich sofort einen Verbesserungsvorschlag: Die Animation über volle 180° auszuführen: Dann könnte man Pythagoras auch visuell erleben, wenn eine Seitenlänge auf 0, also auf einen Punkt geschrumpft ist (ist dann natürlich kein echtes Dreick mehr). Bei Tastendruck "F2" tut sich bei mir nichts. Gruß Delphi-Laie Ergänzung: Noch eine Anregung: Automatisches "Mitzoomen" des Vergrößerungsmaßstabes bei Fensterzoomen. Ergänzung 2: Was bleibt denn eigentlich bei der Animation konstant (d.h., von gleicher Größe, am besten auch Position)? Nach meiner Beobachtung nichts. Wäre das anders nicht besser, damit man einen Bezug hat? Seite b, ich nehme die Frage zurück. Könnte man auch variieren. Ergänzung 3: Auch Strg+F12 scheint keine Wirkung zu haben. |
AW: Darstellungen und Berechnungen am Dreieck
F12 scheint auch nicht zu funktionieren.
Ich sehe auch keine Liste... Vielleicht ist es noch zu früh. |
AW: Darstellungen und Berechnungen am Dreieck
Hallo Delphi-Laie,
Zitat:
Zitat:
Zitat:
Zitat:
Hallo jobo, Zitat:
Zitat:
Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Mathematiker, auch bei mir erscheint weder eine Liste, wenn ich auf "Berechnung" klicke, noch irgendeine Reaktion auf F2, F12, Strg+F2 oder Strg+F12. Wahrscheinlich läßt sich deshalb auch keine Dreiecksseite (und das angrenzende Quadrat) zum Verschwinden bringen.
|
AW: Darstellungen und Berechnungen am Dreieck
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab das nur verkürzt wiedergegeben.
[STRNG][F12] geht auch nicht. Bei Berechnen geschieht nicht, außer die graphische Anpassung. Listen gibt es keine. Das Fenster (Größe) lässt sich auch nicht anpassen. P.S.: Das sieht völlig anders aus, als Dein Screenshot. |
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Leute, ich bin so doof !!!!!!!!!!!!!!!!!!!!!!!!!! :wall::wall::wall::wall::wall::wall::wall::wall: Ich habe das falsche Programm angehängt! Wird sofort geändert. Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Kein Grund zur Selbstverstümmelung ;)
|
AW: Darstellungen und Berechnungen am Dreieck
Zitat:
|
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Zitat:
Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
F2 funkioniert jetzt!
(und das Programm sieht ganz anders aus) :) |
AW: Darstellungen und Berechnungen am Dreieck
Das mit der Animation nehme ich zurück, die gibt es doch.
Das Gelb der Mittelsenkrechten ist kaum erkennbar. Evtl. ein optionaler schwarzer Hintergrund? Und dann würde ich die Schnittpunkte der Mittelsenkrechten, Seitenhalbierenden, Höhen (Lote) und Winkelhalbierenden direkt unter den Linien im Menü placieren. So kann man die schnell finden und auch als nächsten Schritt die Euler-Gerade (für Furtbichler: Eulergerade) einblenden. Lässig! Ergänzung: Noch eine Anregung: Wenn die drei für die Euler-Gerade (Eulergerade) relevanten Punkte existieren, könnte man auch die Strecken zwischen den Punkten anders Färben, um das Längenverhältnis 2:1 zu demonstrieren. |
AW: Darstellungen und Berechnungen am Dreieck
Toll!
Ich nehme an, das Dateiformat ist nur durch dieses Programm zu verwenden? *.dre Kann man davon ausgehen, dass eine dre Datei, bei der alle Darstellungsformen aktiviert wurden, dann sozusagen eine vollständige Liste der Möglichkeiten darstellt und das zum Aufbau einer Dreiecksdatei nutzen? Ist die Reihenfolge relevant? Die Animation läuft auch im F12 Modus geschmeidig. Das werde ich mal meinem Sohn zeigen, der hat grad Geometrie. |
AW: Darstellungen und Berechnungen am Dreieck
Mathematiker, zwischendurch mal eine Fachfrage: Wenn alle 4 Punkte (Eulersche Gerade und Winkelhalbierendenschnittpunkt) auf einer Geraden liegen, sind die Streckenverhältnisse dann 2:1:1:2? Scheint so.
Ergänzung: Nein, doch nicht. |
AW: Darstellungen und Berechnungen am Dreieck
Für das Kontrollfenster rechts könntest Du vielleicht noch einen Splitter spendieren und/oder die aufgelisteten Darstellungsoptionen auch als Hint eintragen, damit sie bei zu großer Länger vollständig lesbar sind.
Was den Vorschlag zur Färbung der Linien angeht: Vielleicht macht es wirklich Sinn, Linienart, -stärke und -Farbe durch den Anwender definieren zu lassen. Das würde auch schön zur Themendarstellung passen bzw. diese aufwerten. |
AW: Darstellungen und Berechnungen am Dreieck
Wieder sehr beeindruckend. :thumb:
Weckt das wenigstens etwas Interesse bei Deinen Schülern (Mathe/Programmierung)? |
AW: Darstellungen und Berechnungen am Dreieck
Hallo Delphi-Laie,
Zitat:
Zitat:
Aber: In dem nagelneuen Buch "Bilder der Mathematik" steht Euler-Gerade, Cassini-Kurve, Gauß-Verteilung usw. Was von der sogenannten "Neuen Rechtschreibung" vorgeschlagen wird, interessiert Mathematiker überhaupt(!) nicht. Und das hat auch nichts mit einem Deppen-Bindestrich zu tun. Es bleibt bei einer Euler-Geraden. "Eulergerade" sieht 1. doof aus und lenkt 2. vom Wesentlichen ab, nämlich der Geraden. Übrigens schreiben wir in den Schulen auch weiterhin Ohmsches Gesetz groß. Schließlich ist das Gesetz ja nicht "ohmsch", so wie wahr oder kompliziert, sondern es ist von Ohm. Zitat:
Hallo jobo, Zitat:
Die Reihenfolge ist wichtig. Zitat:
Zitat:
Zitat:
Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Und noch eine Verbesserunganregung: Die Farbe der Checkboxbeschriftung den zu zeichnenden Elementen (wenigstens Linien) anpassen, falls möglich: Das erleichtert die Suche beim Abschalten ungemein.
|
AW: Darstellungen und Berechnungen am Dreieck
Super Programm :thumb: :thumb:
Wie viele Zeilen Sourcecode sind das wenn ich was so fragen darf :shock: Ein kleiner Schönheitsfehler ist mir noch aufgefallen. Wenn man auf der Berechnungsseite ist, wird oben rechts die Anzahl der Einträge angezeigt. Wenn man nun rechts in der Liste einen weiteren Punkt anwählt, wird die Zahl der Einträge auf der Seite nicht aktualisiert. Erst wenn man wieder auf "Darstellung" und zurück wechselt wird der Count erneut ausgeführt. |
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
ich habe die erste Änderung durchgeführt. Es ist ein Splitter vorhanden, mit dem man den Eingabebereich verändern kann. Die Mittelsenkrechten werden nicht mehr gelb gezeichnet und ein zusätzlicher Schalter ("x") löscht schnell alle ausgewählten Elemente, bis auf das Ausgangsdreieck. Der Fehler in der Berechnungsliste ist weg. Zitat:
Zitat:
Zitat:
Zitat:
Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Noch ein paar Anmerkungen:
- Wieso ist die Fenstergröße fix? - Nach welchen Kriterien werden die Berechnungsformen sortiert? Ich habe z.B. nach Rechte Winkel, Pythagoras, Quadrat, .. gesucht und letztlich eine F12-Modus gespeicherte Datei im Texteditor durchsucht, um immerhin "Seitenquadrate" zu finden. Im Programm muss man dann aber erneut durch die 3 (bzw. 4) Reiter stöbern, um "Seitenquadrate" zu finden. Du hast ja so viel Berechnungen implementiert, da würde vielleicht eine intelligente Kombobox mit Teilstringsuche ganz gut helfen. Zur Animation Animationssequenzen wären noch die Sahnehaube! a) Zunächst wären Anfangs-/Endpunkte für ABC zu definieren, b) dann (sofern machbar) noch Farbwechsel. c) Angabe von aus-/einzublenden Berechnungen d) Animationspause in ms a),b),c),d) dann beliebig oft (mit anderen Werten natürlich), als Liste oder Zirkel (Liste vorwärts, rückwärts) Ich bin kein Mathegenie, aber ich könnte mir vorstellen, dass man damit doch etwas Euklidische Geometrie veranschaulichen kann (mir oder den Schülern). P.S.: Eine (automatische) Visualisierung rechter Winkel (Winkelbogen mit Punkt) wäre auch schön. |
AW: Darstellungen und Berechnungen am Dreieck
Hallo jobo,
Danke für die vielen Hinweise. Ich werde in den nächsten Tagen versuchen, möglichst viel umzusetzen. Zitat:
Ebenso kann jetzt die Animationsgeschwindigkeit geregelt werden. Außerdem können die Dreieckspunkte jetzt auch um den Ursprung rotieren. Wie schon gesagt, der Rest wird wahrscheinlich auch noch. Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
kannst ja den Sourcecode mit reinstellen.:-D Das man was lernen kann...:thumb: |
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Zitat:
Außerdem: In der EE habe ich für fast jeden meiner Quelltexte "Prügel" erhalten, da sie für andere nicht lesbar sind. Z.B. gibt's bei mir keinerlei Kommentare, schlecht strukturiert usw. Bei anderen Programmen bin ich gern bereit, den Quelltext zu zeigen; bei den komplexeren nicht unbedingt. Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Ich vermied es, für Mathematiker bezüglich des Quelltextes zu reagieren, aber jetzt muß es heraus, nämlich daß das Bitten um den Quelltext aussichtslos ist, war mir von Anfang an sonnenklar - sonst hätte ihn Mathematiker schließlich von sich aus beigelegt.
Zitat:
|
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Der Quellcode wäre sicher gut als Übung für: 'Was hat sich der Autor dabei gedacht?', denn Du neigst, dazu möglichst kurze Variablennamen zu nehmen. Danke, dass Du uns für dieses Wochenende "verschonst". Gleich zu Beginn, Adams-Kreis, kannte ich gar nicht. Also schalte ich mal was bekannses, die Umkreise hinzu und ei verbibscht der Schnittpunkt von denen war der Mittelpunkt dieses "Adams-Kreises". Ich fühlte mich wie ein blindes Huhn ;-) Danke für diese Moment der Verblüffung. Gruß Horst |
AW: Darstellungen und Berechnungen am Dreieck
Stellst Du jetzt nach und nach alle Deine Programme rein?
Dann spar ich mir das Geld für das aktuelle "WinFunktion Mathematik Plus 20 " :-D |
AW: Darstellungen und Berechnungen am Dreieck
Hallo blondervolker,
damit Du nicht denkst, ich will mich vollkommen drücken, habe ich einmal einen Teil herauskopiert und mit kurzen Kommentaren versehen, den Teil zur Berechnung der rekursiven Soddy-Kreise:
Delphi-Quellcode:
Und so geht es knapp 12000 Zeilen weiter. Willst Du Dir das antun? :mrgreen:
//rekursive Soddykreise
procedure rekursivsoddy; var a,b,c,ax,bx,cx,ra,rb,rc:real; //apollonische kreise procedure apoll(ax,ay,ar,bx,by,br,cx,cy,cr:extended;tiefe:integer); var seitea,seiteb,seitec, alpha,beta,gamma, talpha,tbeta,tgamma, dx,dy,dr:extended; ddx,ddy,w5:real; begin if tiefe>8 then exit; //Kreisradius berechnen w5:=(br*cr+ar*(br+cr)+2*sqrtx(ar*br*cr*(ar+br+cr))); if w5=0 then exit; dr:= ar*br*cr/w5; //Abstände der berührenden Kreise berechnen seitea:=sqrtx(sqr(bx-cx)+sqr(by-cy)); seiteb:=sqrtx(sqr(ax-cx)+sqr(ay-cy)); seitec:=sqrtx(sqr(bx-ax)+sqr(by-ay)); if (seiteb*seitec*seitea<>0) then begin //Innenwinkel berechnen alpha:=(seitea*seitea-seiteb*seiteb-seitec*seitec)/(-2*seiteb*seitec); beta:=(seiteb*seiteb-seitea*seitea-seitec*seitec)/(-2*seitea*seitec); gamma:=(seitec*seitec-seiteb*seiteb-seitea*seitea)/(-2*seiteb*seitea); beta:=sqrtx((1+beta)/2); gamma:=sqrtx((1+gamma)/2); alpha:=sqrtx((1+alpha)/2); if alpha*beta*gamma<>0 then begin //Parameter der trilinearen Koordinaten ermitteln talpha:=1+beta*gamma/alpha; tbeta:=1+alpha*gamma/beta; tgamma:=1+alpha*beta/gamma; //trilineare Koordinaten des Kreismittelpunktes ermitteln trilinear(ax,ay,bx,by,cx,cy,talpha,tbeta,tgamma,ddx,ddy); dx:=ddx; dy:=ddy; xkreis(dx,dy,dr); //Ausgabe in Berechnungsliste if pan10 then begin lb1.items.add('Rekursiver Soddy-Kreis'#9'M ('+_strkomma((dx-pw2)/100,1,3)+ '|'+_strkomma((-dy+ph2)/100,1,3)+'), r = '+_strkomma(dr/100,1,3)); end; //rekursiver Aufruf weiterer Kreise if dr>1 then begin apoll(ax,ay,ar,bx,by,br,dx,dy,dr,tiefe+1); apoll(ax,ay,ar,cx,cy,cr,dx,dy,dr,tiefe+1); apoll(bx,by,br,cx,cy,cr,dx,dy,dr,tiefe+1); end; end; end; end; begin //Übergeben werden die Seitenlängen sxa, sxb, sxc //und die Innenwinkel wxa, wxb, wxg des Dreiecks if (sxa+sxb+sxc<>0) and (cos(wxa/2)*cos(wxb/2)*cos(wxg/2)<>0) then begin //1.Soddy-Kreisradien berechnen ra:=0.5*(-sxa+sxb+sxc); rb:=0.5*(sxa-sxb+sxc); rc:=0.5*(sxa+sxb-sxc); can.pen.color:=clnavy; //erster Apollonius-Kreis apoll(punkte[1].x,punkte[1].y,ra, punkte[2].x,punkte[2].y,rb, punkte[3].x,punkte[3].y,rc,1); end; end; Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Zitat:
Zitat:
Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Nein!!! Das möchte ich mir wirklich nicht antun.:-D:pale:
Übrigens war es als "Spass" gemeint. Für tolle Programme würde ich meinen Code auch nicht rausrücken... Da ich aber lernbereit bin,übe ich fleißig weiter...:? |
AW: Darstellungen und Berechnungen am Dreieck
Der kurze Quelltextauszug lässt aber erahnen, welche Prügel du dafür einstecken musst(est) :mrgreen:
Die kurzen Variablenamen finde ich dabei noch nicht mal schlecht, weil die Seiten eines Dreiecks nun mal mit a,b,c benamt werden. Aber wir wollen das hier nicht fortsetzen. Einmal Prügel ist mehr als ausreichend und ein schönes Programm ist es allemal :thumb: Und ein fertiges, funktionierendes Programm ist mehr wert als ein schöner, halbfertiger Quellcode |
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Zitat:
Zitat:
Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Diese "Prügel" ist nur ein Zeichen der Undankbarkeit und sozialer Minderintelligenz.
Denn jede altruistische Leistung in einem Forum (in gewisser Weise sogar ein Forum selbst) ist als Geschenk zu werten, dafür gibt es nichts als Dank und - soweit möglich - Gegenleistung. Wer also an Quelltexten, die seinem eigenen Geschmack nicht passen, nichts besseres findet, als daran herumzumäkeln, wird früher oder später keine solche mehr vorgesetzt bekommen - und andere müssen mit darunter leiden. |
AW: Darstellungen und Berechnungen am Dreieck
[OT]
... finde ich auch (ok, ich würde es anders formulieren). Ich würde Klammern, Leerzeichen und Umbrüche anders setzen (dann wäre es aber nicht mehr so kompakt), aber sonst sehe ich da nichts schlimmes. Außerdem habe ich mir angewöhnt, englische Bezeichner zu verwenden (SiteA usw.), obwohl ich dazu häufig erst wegen einer Übersetzung nachschlagen muss (und das Ergebnis sicher nicht immer optimal ist). Inhaltlich habe ich das aber aus Zeitgründen nicht geprüft. :stupid: [/OT] |
AW: Darstellungen und Berechnungen am Dreieck
Ich hab gesehen, du verwendest alleine in dieser Procedure 10 globale Variablen. Das dürfte auf die Dauer ziemlich unübersichtlich werden? Du könntest dir überlegen, diese eventuell wegzukapseln.
Delphi-Quellcode:
Gruß
type
TFloatPoint = record X, Y: double; end; TFloatPoints = array of TFloatPoint; TRekursivSoddy = record private Fra: double; Frb: double; Frc: double; FPan10: boolean; Fsxa: double; Fsxb: double; Fsxc: double; Fwxa: double; Fwxb: double; Fwxg: double; FCanvas: TCanvas; FPunkte: TFloatPoints; FResult: TStrings; function GetPunkte(I: integer): double; procedure SetPunkte(I: integer; const Value: double); public property Pan10: boolean read FPan10 write FPan10; property sxa: double read Fsxa write Fsxa; property sxb: double read Fsxb write Fsxb; property sxc: double read Fsxc write Fsxc; property wxa: double read Fwxa write Fwxa; property wxb: double read Fwxb write Fwxb; property wxg: double read Fwxg write Fwxg; property Canvas: TCanvas read FCanvas; property Result: TStrings read FResult; property Punkte[I: integer]: double read GetPunkte write SetPunkte; procedure CalcSoddy; procedure Apoll(ax, ay, ar, bx, by, br, cx, cy, cr: extended; tiefe: integer); procedure Clear; end; Thomas |
AW: Darstellungen und Berechnungen am Dreieck
@Bjoerk
Ich denke in dem anderen Forum wird er (hat er auch bestätigt) genug "Prügel" bekommen haben und warum er das so macht hat er auch erklärt. Bei deinem Ansatz sehe ich aber eher eine Verschlimmbesserung, als eine sinnvolle und durchdachte Verbesserung. Ein vernünftiger Ansatz wäre es die gesamte Berechnung völlig von der Darstellung zu lösen (und ja, die Verwendung von globalen Variablen sowieso zu eliminieren). Ich würde aber vorschlagen den Quellcode in einem separaten Thread zu diskutieren und nicht hier, wo ja eigentlich nur das Programm vorgestellt wird/werden sollte. |
AW: Darstellungen und Berechnungen am Dreieck
Sehe ich auch so. Das mit der Prügel in dem andern Forum hab ich übrigens nicht mitgekommen. War von meiner Seite auch nicht so gemeint. Und klar, wenn man das Prog schon überarbeitet, z. B. das Canvas hat da sicherlich nichts verloren.
|
AW: Darstellungen und Berechnungen am Dreieck
Hallo,
Danke an Bjoerk und Sir Rufo. Ich habe mir Bjoerks Vorschlag angesehen und kann nur bewundernd feststellen, dass ich wenig verstehe. Mir ist klar, dass so moderne, wegen mir auch, richtige Programmierung aussieht, aber lasst mir bitte meine "antiken Stil". Als Hobbyprogrammierer, dem es einfach nur Spaß macht, interessante Probleme dem Computer beizubringen, reicht es so noch. Obwohl jeder Vergleich hinkt, denke ich: Ich mache mit einer Sense etwas Heu für meine Kaninchen, während Ihr mit computergesteuerten HiTech-Maschinen riesige Flächen in der gleichen Zeit bearbeitet. Nebenbei. Die 10 Variablen sind nicht global, sondern lokal in einer Prozedur, welche die gezeigte und viele weitere enthält. :wink: Ja ja, ich weiß, das ist noch schlimmer. :-D Beste Grüße Mathematiker |
AW: Darstellungen und Berechnungen am Dreieck
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz