C++Guns – RoboBlog

25.11.2010

Mehr ASCII

Filed under: Allgemein — Thomas @ 23:11

Hier mal ein ASCII Strich ^^
Mit GIF Anitmation damit man auch sieht was passsiert

pfeil

Und mein crazy Quellcode

#include < stdio.h >
#include < math.h >
#include < stdlib.h >
#include < unistd.h >

void gotoxy(int x,int y)
{
  printf("%c[%d;%df",0x1B,y,x);
}

int main()
{
  // Start / End Position des Striches
  float x1 = 0, x2 = 0, y1 = 0, y2 = 0;
  // Laufvariable
  int i = 0;
  // Y Wert der Geraden Gleichgung
  int y = 0;
  // Steigung und F(x) Achsenabschnitt
  float m = 0, b = 0;
  // Winkel
  float rad = 0;

  while(1)
  {
    system("clear");
    // Neue x/y Positionen berechnen
    // Gerade hat einen Radius von 10 und ist um 25 in X und 15 in Y verschoben
    x1 = cos(rad) * 10 + 25;
    y1 = sin(rad) * 10 + 15;
    x2 = cos(rad+3.1415) * 10 + 25;
    y2 = sin(rad+3.1415) * 10 + 15;
    // um 1/16PI weiter drehen
    rad += 3.1415/16;
    // Steigung berechnen
    m = (y2-y1)/(x2-x1);
    // Achsenabschnitt berechnen
    b = y1-m*x1;
    // komische Schleife.
    // X1 kann groessr als X2 sein, daher lass schleife so lange laufen
    // bis x1 == x2 ist. Erhoehre oder erniedrige i je nachdem ob x1 groesser
    // x2 ist oder umgekehrt
    // Da nur ueber x Iteriert wird, ist bei einem senkrechten Strich nichts
    // zu sehen. Wenn die Hoehe des Striches groesser als die Breite ist,
    // sollte man ueber y Iterieren.
    for(i = (int)x1; i != (int)x2; x1>x2?i--:i++)
    {
      // Gerade Zeichnen
      y = m*i+b;
      gotoxy(i, y);
      printf("#");
    }
    fflush(stdout);
    sleep(1);
  }
}

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

Powered by WordPress