Hier mal ein ASCII Strich ^^
Mit GIF Anitmation damit man auch sieht was passsiert
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);
}
}
