Wystarczy użyć poniższej funkcji wyliczającej współrzędną Y dowolnego punktu należącego do prostej przechodzącej przez punkty (x1,y1) i(x2,y2) na podstawie współrzędnej X:
Function FunkcjaLiniowa(x1,y1,x2,y2, X:Integer):Integer;// liczenie wartości Y z równania prostej przechodzącej przez dwa punkty (x1,y1) i (x2,y2) i punkt X
Begin
Result:=Round(((y2-y1)/(x2-x1))*x-((y2-y1)/(x2-x1))*x1+y1);
End;
I teraz wystarczy zastosować funkcję Line( a1, b1, a2, b2) i do niej podstawić funkcję FunkcjaLiniowa(..):
Line(a1, FunkcjaLiniowa(x1,y1,x2,y2, a1), a2, FunkcjaLiniowa(x1,y1,x2,y2, a2) );
która pozwoli na wykreślenie prostej zaczynającej się przy X=a1, a kończącej się przy X=a2 i przechodzącej przez punkty (x1,y1) i (x2,y2).
Tak więc, chcąc wyznaczyć prostą na całej szerokości wykresu na którym X-y zaczynają się od 0, a kończą na 100, to wystarczy za a1 podstawić 0, a za a2 dać 100.
Przykład może nie jest zoptymalizowany pod względem długości kodu, a jest raczej kodem
edukacyjnym i widać jasno, gdzie co jest liczone i podstawiane.
Pzdr.
Marogo