Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Darstellungen und Berechnungen am Dreieck (https://www.delphipraxis.net/174139-darstellungen-und-berechnungen-am-dreieck.html)

Mathematiker 6. Apr 2013 09:45


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 http://faculty.evansville.edu/ck6/encyclopedia/ETC.html werden von Clark Kimberling alte und neue Beziehungen am Dreieck gesammelt.

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.

Delphi-Laie 6. Apr 2013 09:51

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.

jobo 6. Apr 2013 10:03

AW: Darstellungen und Berechnungen am Dreieck
 
F12 scheint auch nicht zu funktionieren.
Ich sehe auch keine Liste...
Vielleicht ist es noch zu früh.

Mathematiker 6. Apr 2013 10:12

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo Delphi-Laie,
Zitat:

Zitat von Delphi-Laie (Beitrag 1210248)
Na, wenn ich an Deine Sternhimmelanimation denke. Die erscheint mir noch weitaus aufwendiger.

Ich habe mich vielleicht etwas unklar ausgedrückt. Das Dreiecksprogramm war von fachlicher Seite wesentlich anspruchsvoller.
Zitat:

Zitat von Delphi-Laie (Beitrag 1210248)
Die Animation über volle 180° auszuführen

Meinst Du "Drehen um 180°"? Lässt Du z.B. A senkrecht laufen, schrumpft das Dreieck auch auf eine Seite zusammen.
Zitat:

Zitat von Delphi-Laie (Beitrag 1210248)
Bei Tastendruck "F2" tut sich bei mir nichts.

Bei mir funktioniert es. Vielleicht kann es ja jemand anderes testen.
Zitat:

Zitat von Delphi-Laie (Beitrag 1210248)
Noch eine Anregung: Automatisches "Mitzoomen" des Vergrößerungsmaßstabes bei Fensterzoomen.

Werte ich einarbeiten. Danke fur den Hinweis.

Hallo jobo,
Zitat:

Zitat von jobo (Beitrag 1210250)
F12 scheint auch nicht zu funktionieren.

Nicht einfach F12, sondern Strg+F12 bzw. Ctrl+F12, je nach Tastatur.
Zitat:

Zitat von jobo (Beitrag 1210250)
Ich sehe auch keine Liste...

Die Berechnungsliste erscheint nur mit dem Schalter Berechnung. Und die anderen Listen sind die im rechten unteren Fensterbereich.

Beste Grüße
Mathematiker

Delphi-Laie 6. Apr 2013 10:19

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.

jobo 6. Apr 2013 10:21

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.

Mathematiker 6. Apr 2013 10:24

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

jobo 6. Apr 2013 10:27

AW: Darstellungen und Berechnungen am Dreieck
 
Kein Grund zur Selbstverstümmelung ;)

Delphi-Laie 6. Apr 2013 10:32

AW: Darstellungen und Berechnungen am Dreieck
 
Zitat:

Zitat von Mathematiker (Beitrag 1210258)
Ich habe das falsche Programm angehängt! Wird sofort geändert.

Tja, das neue nun scheint zwar keine Animation anzubieten, hat es aber wirklich in sich. Großes Lob!

Mathematiker 6. Apr 2013 10:35

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo,
Zitat:

Zitat von Delphi-Laie (Beitrag 1210260)
Tja, das neue nun scheint zwar keine Animation anzubieten

Müsste eigentlich funktionieren. Entweder Taste F2 oder der kleine Schalter mit der Abbildung eines Filmstücks oder über das Menü Abbildung/Animation.

Beste Grüße
Mathematiker

jobo 6. Apr 2013 10:40

AW: Darstellungen und Berechnungen am Dreieck
 
F2 funkioniert jetzt!
(und das Programm sieht ganz anders aus)

:)

Delphi-Laie 6. Apr 2013 10:41

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.

jobo 6. Apr 2013 10:52

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.

Delphi-Laie 6. Apr 2013 10:59

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.

jobo 6. Apr 2013 11:01

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.

stahli 6. Apr 2013 11:12

AW: Darstellungen und Berechnungen am Dreieck
 
Wieder sehr beeindruckend. :thumb:
Weckt das wenigstens etwas Interesse bei Deinen Schülern (Mathe/Programmierung)?

Mathematiker 6. Apr 2013 11:19

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo Delphi-Laie,
Zitat:

Zitat von Delphi-Laie (Beitrag 1210265)
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. ... 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.

Danke für die Hinweise. Werde ich einarbeiten.
Zitat:

Zitat von Delphi-Laie (Beitrag 1210265)
die Euler-Gerade (für Furtbichler: Eulergerade)

Eigentlich wollte ich mich an dieser Diskussion nicht beteiligen.
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:

Zitat von Delphi-Laie (Beitrag 1210271)
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.

Weiß ich nicht. Ich werde mal nachrechnen.

Hallo jobo,
Zitat:

Zitat von jobo (Beitrag 1210268)
Ich nehme an, das Dateiformat ist nur durch dieses Programm zu verwenden? *.dre
... Ist die Reihenfolge relevant?

Es ist eine Textdatei. Ich habe nur ein anderes Format gewählt, damit man nicht irgendeinen Text einladen kann.
Die Reihenfolge ist wichtig.
Zitat:

Zitat von jobo (Beitrag 1210268)
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?

Vollkommen richtig.
Zitat:

Zitat von jobo (Beitrag 1210272)
Für das Kontrollfenster rechts könntest Du vielleicht noch einen Splitter spendieren ...

Dank für die Hinweise. Werde ich prüfen.
Zitat:

Zitat von stahli (Beitrag 1210276)
Weckt das wenigstens etwas Interesse bei Deinen Schülern (Mathe/Programmierung)?

Nein.

Beste Grüße
Mathematiker

Delphi-Laie 6. Apr 2013 11:20

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.

Aviator 6. Apr 2013 11:30

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.

Mathematiker 6. Apr 2013 11:52

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 von jobo (Beitrag 1210272)
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.

Zitat:

Zitat von Delphi-Laie (Beitrag 1210279)
Und noch eine Verbesserunganregung: Die Farbe der Checkboxbeschriftung den zu zeichnenden Elementen (wenigstens Linien) anpassen

Ist schwieriger als ich zuerst dachte. Ich werde mir etwas einfallen lassen.
Zitat:

Zitat von Aviator (Beitrag 1210281)
Ein kleiner Schönheitsfehler ist mir noch aufgefallen.

Ist behoben. Danke für den Hinweis.
Zitat:

Zitat von Aviator (Beitrag 1210281)
Wie viele Zeilen Sourcecode sind das wenn ich was so fragen darf :shock:

Für die Darstellung und Berechnung knapp 12000. Dazu kommen dann noch die Routinen für Drucken, Kopieren, Speichern usw.

Beste Grüße
Mathematiker

jobo 6. Apr 2013 13:22

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.

Mathematiker 6. Apr 2013 16:59

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:

Zitat von jobo (Beitrag 1210302)
Wieso ist die Fenstergröße fix?

Ist in Revision 2 geändert.
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

blondervolker 6. Apr 2013 17:44

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo,

kannst ja den Sourcecode mit reinstellen.:-D
Das man was lernen kann...:thumb:

Mathematiker 6. Apr 2013 17:58

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo,
Zitat:

Zitat von blondervolker (Beitrag 1210340)
kannst ja den Sourcecode mit reinstellen.:-D

Könnte ich, aber bei diesem Programm möchte ich es nicht. :)
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

Delphi-Laie 6. Apr 2013 18:35

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:

Zitat von Mathematiker (Beitrag 1210342)
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.

Mach Dir nichts draus, Mathematiker: In den Foren gibt es auch genug Leute, die persönlich werden und einen angreifen, obwohl man sie nicht angriff. ;-)

Horst_ 6. Apr 2013 18:39

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

borstenei 6. Apr 2013 18:59

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

Mathematiker 6. Apr 2013 19:04

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:
//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;
Und so geht es knapp 12000 Zeilen weiter. Willst Du Dir das antun? :mrgreen:

Beste Grüße
Mathematiker

Mathematiker 6. Apr 2013 19:06

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo,
Zitat:

Zitat von borstenei (Beitrag 1210345)
Stellst Du jetzt nach und nach alle Deine Programme rein?

Nein.
Zitat:

Zitat von borstenei (Beitrag 1210345)
Dann spar ich mir das Geld für das aktuelle "WinFunktion Mathematik Plus 20 " :-D

Kannst Du Dir sparen. siehe PN

Beste Grüße
Mathematiker

blondervolker 6. Apr 2013 20:35

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...:?

Sir Rufo 6. Apr 2013 22:59

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

Mathematiker 7. Apr 2013 07:37

AW: Darstellungen und Berechnungen am Dreieck
 
Hallo,
Zitat:

Zitat von Sir Rufo (Beitrag 1210360)
... und ein schönes Programm ist es allemal :thumb:

Danke für das Lob.
Zitat:

Zitat von Sir Rufo (Beitrag 1210360)
Der kurze Quelltextauszug lässt aber erahnen, welche Prügel du dafür einstecken musst(est) :mrgreen:

Mein Problem ist, dass ich noch aus den Algol60/Basic/Turbo-Pascal-Zeiten komme. Ich versuche (manchmal :lol:) mich ja umzustellen, aber irgendwie sehe ich noch keinen Nutzen, für mich persönlich. Zum Glück muss ich mein Geld nicht mit Programmiererei verdienen und bin auch nicht gezwungen im Team zu programmieren. Denn dann würde ich wohl verhungern. :mrgreen:

Beste Grüße
Mathematiker

Delphi-Laie 7. Apr 2013 11:01

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.

stahli 7. Apr 2013 11:34

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]

Bjoerk 7. Apr 2013 11:52

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:
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;
Gruß
Thomas

Sir Rufo 7. Apr 2013 12:21

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.

Bjoerk 7. Apr 2013 12:39

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.

Mathematiker 7. Apr 2013 14:06

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

Delphi-Laie 7. Apr 2013 16:17

AW: Darstellungen und Berechnungen am Dreieck
 
Zitat:

Zitat von Sir Rufo (Beitrag 1210388)
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.

Ja, mir gingen seit einigen Tagen auch derlei Grundsatzdinge durch den Kopf, deshalb eine neuerstellte Diskussion.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz