bleicher: C - geradendarstellung?

Grüße,
wie komplieziert ist es, in C einige schrägliegende geraden zu "rendern"?
monochrom lowres ist genügend, aber geht das auch ohne 3jähriger vorausbildung?

googeln führte nur zu komplexeren themen wie openGL programmierung u.ä. :(

die idee war einfach nur ein paar geradengleichungen zu visualisieren
MFG
bleicher

  1. @@bleicher:

    nuqneH

    wie komplieziert ist es, in C einige schrägliegende geraden zu "rendern"?
    monochrom lowres ist genügend, aber geht das auch ohne 3jähriger vorausbildung?

    Es geht mit dem Bresenham-Algorithmus.

    Qapla'

    --
    Bildung lässt sich nicht downloaden. (Günther Jauch)
    1. Grüße,

      Es geht mit dem Bresenham-Algorithmus.

      danke - aber ich wüsste von mir aus nicht, wie ich den mithilfe von C und VS2005 implementieren könnte ;/
      MFG
      bleicher

      1. Unter Windows gibts doch einige Grafikroutinen, hilft dir da nichts?
        Aus dem Stegreif würd ich mal unter DrawLine suchen.

  2. Hallo,

    wie komplieziert ist es, in C einige schrägliegende geraden zu "rendern"?
    monochrom lowres ist genügend, aber geht das auch ohne 3jähriger vorausbildung?

    ich fand es einfach. Ich nutzte damals (ein paar Monate nach meiner ersten Berührung mit C) den Borland-Compiler mit seinen Grafikroutinen. Jahre vorher hatte ich ähnliches mit GFA-Basic für meinen Atari programmiert :-)

    die idee war einfach nur ein paar geradengleichungen zu visualisieren

    für welches Ausgabemedium?

    Freundliche Grüße

    Vinzenz

    1. klingt beeindruckend^^

      für welches Ausgabemedium?

      "win32 consolenanwendung" - als IDE hab ich nur VS2005 (MUSS ich verwenden)- steht da was von haus aus bereit?
      MFG
      bleicher

      1. Hallo,

        » für welches Ausgabemedium?

        "win32 consolenanwendung" - als IDE hab ich nur VS2005 (MUSS ich verwenden)- steht da was von haus aus bereit?

        ich glaube, das muss man nicht verstehen.
        Wenn ich für ein spezielles Betriebssystem mit einer grafischen Benutzeroberfläche programmiere, dann verwende ich selbstverständlich ein ganz normales Fenster dieser Benutzeroberfläche und nutze die dafür vorhandenen Funktionen.

        Warum um alles in der Welt versuchst Du eine textorientierte Kommandozeile eines solchen Systems für solche Zwecke zu vergewaltigen? Sowas macht man nicht! Unter anderem für solche Zwecke hat man einst grafische Oberflächen erfunden. Das ist ein paar Jahrzehnte her.

        Freundliche Grüße

        Vinzenz

        1. Grüße,

          Warum um alles in der Welt versuchst Du eine textorientierte Kommandozeile eines solchen Systems für solche Zwecke zu vergewaltigen? Sowas macht man nicht! Unter anderem für solche Zwecke hat man einst grafische Oberflächen erfunden. Das ist ein paar Jahrzehnte her.

          ich kann morgen früh beim lehrstuhl anrufen und die mal fragen, aber die haben mich eh schon als "der klugschießer schon wieder" abgestempelt - ich würde es vor den prüfungen nur ungern riskieren ;P
          MFG
          bleicher

          1. Hallo,

            ich kann morgen früh beim lehrstuhl anrufen und die mal fragen, aber die haben mich eh schon als "der klugschießer schon wieder" abgestempelt - ich würde es vor den prüfungen nur ungern riskieren ;P

            ich vermute, Du hast die Aufgabenstellung völlig falsch verstanden.

            Was Du tun kannst - und zwar ohne Probleme: aus einer Konsolenanwendung heraus ein normales Fenster öffnen und in diesem Fenster mit den Grafikfunktionen wie LineTo Linien zeichnen (oder sie über SetPixel Punkt für Punkt händisch erstellen).

            Freundliche Grüße

            Vinzenz

            1. Grüße,

              ich vermute, Du hast die Aufgabenstellung völlig falsch verstanden.

              jein^^ - darstellen gehört nicht zu den aufgeban - aber man muss sich irgendein extra aus dem finger saugen :(

              die eigentliche aufgabe lautet - aus 3 punkten ebene ermitteln und überprüfen ob weitere eingegebene punkte in der ebene liegen oder nicht.

              ich kann mir da leider recht wenig als "extra" einfallen lassen ;(
              MFG
              bleicher

              1. Wie wärs wenn du eine Bilddatei erzeugst, die das enthält was du in ein Fenster zeichnen willst?
                Ich überlege nämlich gerade ob die Ausgabe in einem Fenster sinnvoll ist, wenns doch ne Konsolenanwendung werden soll.
                Noch ein Zusatz, du könntest die Entfernung der Punkte von der Ebene berechnen, die nicht drauf liegen.

                1. Grüße,

                  Noch ein Zusatz, du könntest die Entfernung der Punkte von der Ebene berechnen, die nicht drauf liegen.

                  gute idee - danke^^
                  MFG
                  bleicher

              2. Hallo,

                » ich vermute, Du hast die Aufgabenstellung völlig falsch verstanden.
                jein^^ - darstellen gehört nicht zu den aufgeban - aber man muss sich irgendein extra aus dem finger saugen :(

                die eigentliche aufgabe lautet - aus 3 punkten ebene ermitteln und überprüfen ob weitere eingegebene punkte in der ebene liegen oder nicht.

                ok, es war nirgends die Rede davon, etwas graphisches auf der Konsole darzustellen. Also lass die Finger davon.

                Ideen für Extras: (je zusätzlich eingegebenem Punkt)

                • Gib ggf. den Abstand eines der Punktes von der Ebene an
                • Gib an, ob der Punkt auf der gleichen Seite wie der Ursprung liegt
                • Fälle von Deinem Punkt das Lot auf die Ebene und gib den Lotfußpunkt an.

                Wenn Du unbedingt aufwendige Grafikdarstellung haben willst.

                • Mache ein grafisches Fenster auf und stelle in diesem die Ebene und die
                    Normale durch die Zusatzpunkte dar (aufwendig).
                    Verflixt: Allein die Projektion aus dem 3-D-Raum auf Deine Zeichenebene
                    ist schon aufwendig genug.

                Freundliche Grüße

                Vinzenz

                1. @@Vinzenz Mai:

                  nuqneH

                  Verflixt: Allein die Projektion aus dem 3-D-Raum auf Deine Zeichenebene ist schon aufwendig genug.

                  Wenn die Zeichenebene parallel zur xy-, xz- oder yz-Ebene liegt, ist es unproblematisch. Es sei denn, du meintest perspektivische Projektion.

                  Es ließe sich aber auch einfach ein VRML-Modell der Szene erstellen: die ersten drei Punkte blaue Kügelchen, das von ihnen gebildete Dreieck teiltransparent, die andern Punkte rote Kügelchen. Im Viewer kann man durch die Szene navigieren: drehen, zoomen. Ja, das dürfte Eindruck schinden.

                  Qapla'

                  --
                  Bildung lässt sich nicht downloaden. (Günther Jauch)
                2. 你好 Vinzenz,

                  Verflixt: Allein die Projektion aus dem 3-D-Raum auf Deine Zeichenebene
                    ist schon aufwendig genug.

                  Naja, für so einfache Darstellungen (im Vergleich zu heutigen 3D-Anwendungen ist das vergleichsweise einfach) dürfte eine Projektion via Strahlensatz reichen, was noch halbwegs einfach zu machen wäre.

                  再见,
                   克里斯蒂安

              3. Moin.

                die eigentliche aufgabe lautet - aus 3 punkten ebene ermitteln und überprüfen ob weitere eingegebene punkte in der ebene liegen oder nicht.

                Schon das ist übrigens nicht ganz unproblematisch, falls mit Fließpunktzahlen endlicher Präzision gearbeitet wird: Rundungsfehler können hier zu falschen Ergebnissen führen.

                Das korrekte Vorgehen sollte sein, *immer* den Abstand von Punkt und Ebene zu berechnen, und diesen mit einem Epsilon-Parameter zu vergleichen - d.h., alle Punkte, die nahe genug an der Ebene liegen, werden als in ihr liegend eingestuft...

                Christoph