ASCII - finde keinen Ansatz

  • hi


    Ich habe folgendes Problem:
    Das einlesen aller Daten also Start und Endpunkt der Linie klappt und auch die größe des Ascii Bildes. Jedoch verstehe ich nicht wie ich diesen Bresenham Algorithmus für mein 2-dimensionales Array verwenden kann....


    Im netz finde ich nur Beispiele wie das über pixel raster funktioniert.


    lg

  • Ich hab ein zweidimensionales String-Array erzeugt, wobei die erste Dimension den Zeilenindex verwaltet und die zweite die Zeichen in der jeweiligen Zeile.
    In der Spezifiktion zum Beispiel ist im Pseudocode der Algorithmus ausreichend dargestellt - und funktioniert bei mir wunderbar nach dieser Vorlage:



    Diesen Code kannst du praktisch ein zu eins in Java übersetzen. Was bei swap und plot passieren soll, ist zwar erklärt, aber ich denke mal bei letzterem liegt dein Problem oder? Du musst da einfach das übergebene Zeichen "ch" an der entsprechenden Stelle setzen. D.h. bei plot(y,x) würde bei mir der Code so aussehen:

    Code
    1. image[x][y] = ch;


    Analog ist mit plot(x,y) zu verfahren - nur mit x und y in vertauschten Rollen.

    Ich hoffe ich konnte helfen. :)

    Grüße

  • warum ein String array und kein char array?


    ich weiß leider nicht was bei swap passieren soll... plot ist mir klar. da wird das Array Element von "." auf das eingegebene Zeichen geändert.


    lg

  • swap macht den sogenannten Dreickeckstausch und tauscht die Werte zweier Variablen aus, z.b.:

    int swap;
    int a;
    int b;

    swap=a;
    a=b;
    b=swap;

    Hoffe man konnte helfen!

    // Ich hab ein String Array genommen, weil es bei der Scanner Methode keinen Befehl hasNextChar() gibt und habe mir somit das Leben ein wenig vereinfacht, aber es würde mit char genauso gehen, da müsste man beim einlesen halt mit charAt(0) arbeiten, aber mir fiel die Arbeit mit dem String Array auch leichter :)

  • okay danke dir schonmal!
    hat mich schon einiges weiter gebracht.


    Die swaps, die if's und die for Schleife habe ich nun schon in Java übersetzt.


    Was ich nun noch nicht verstehe ist dieses := und das abs... was ist bei abs gemeint mit dem absolutbetrag?


    und die Zeile " boolean steep := abs(y1 - y0) > abs(x1 - x0)" verstehe ich auch nicht. was bedeutet dieses steep?


    lg

  • naja das := ist nur eine Definition sprich:

    error := error + deltay


    bedeutet nichts anderes als, "error += deltay", im Pseudocode ist die Syntax nunmal so, und bezüglich des Absolutbetrages sollte der Wikipediaartikel der auf der eProg Seite angegeben ist, weiterhelfen.
    Ist nun mal ein fixer Algorithmus, welcher gegeben war und auf welchen man (zum Glück :) ) nicht selber draufkommen musste :D


  • := ist eine einfache zuweisung. Also in Java das =
    Delphi und Paschal benutzen z.b. := als zuweisung und = als vergleich


    abs - Absolutbetrag. Der Betrag einer Zahl. Kurz gesagt die Zahl ohne vorzeichen.