Rysowanie linii z czterech oddzielnych punktów w trybie graficznym

0

Witam,

Mam do Państwa pytanie, otóż rysuję w trybie graficznym ( a właściwie mam zamiar ), narysować w 4 "oddzielnych okienkach" różne linie kolorowe, by wychodziły one ze środka tego okienka. Brakuje mi słowa jak nazwać takie okienko ^^. Wygląda to tak:

3b007e4f31ea2efba09ae1a0c5a03927.png

I teraz pierwsze okienko zrobiłem bez problemu, działa jak na leży ( lewy górny róg, rysuje do połowy wartości szerokości i połowy wartości wysokości ), za to w drugim mam problem, otóż nie wiem jakie powinny być wymiary przy linii y ( chyba ), by była ona wyłącznie do połowy wysokości, ale uwzględniając właśnie od strony dolnej. Próbowałem na różne metody, ale niestety mi nie wychodziło. Wydaje mi się, że błąd tkwi przy losowaniu linii współrzędnej Y ( random(y), no chociaż mogę się mylić, to tylko takie moje domysły.

Do takiego kodu doszedłem. Mam nadzieję, że jasno wytłumaczyłem o co mi chodzi. Proszę o wskazówkę.
Pozdrawiam

procedure Rysuj_Lewa_Gorna;
var losowy_kolor, x, y: word;
begin
  x := GetMaxX;
  y := GetMaxY;
  losowy_kolor:=random(15)+1;
  SetColor(losowy_kolor);
  Line(x div 4, y div 4, random(x) div 2, random(y) div 2);
end;
procedure Rysuj_Lewa_Dolna;
var losowy_kolor, x, y: word;
begin
  x:= GetMaxX;
  y := GetMaxY;
  losowy_kolor := random(15)+1;
  SetColor(losowy_kolor);
  Line(x div 4, round(y div 4)*3, random(x-round(x*0.5)), random(y));
end;

dodanie znacznika <code class="delphi"> oraz obrazka do załączników posta - @furious programming

1

Po pierwsze nie używaj graph bo jest przestarzałe zainteresuj się OpenGL bądź DirectX - no chyba, że w szkole to masz.
Po drugie:

SetViewPort

Set the graphical drawing window

Declaration

Source position: graphh.inc line 748

procedure SetViewPort(
  X1: SmallInt;
  Y1: SmallInt;
  X2: SmallInt;
  Y2: SmallInt;
  Clip: Boolean
);

Description

Sets the current graphical viewport (window) to the rectangle defined by the top-left corner (X1,Y1) and the bottom-right corner (X2,Y2). If Clip is true, anything drawn outside the viewport (window) will be clipped (i.e. not drawn). Coordinates specified after this call are relative to the top-left corner of the viewport.

Powinno Ci to ułatwić sprawę.

dodanie znacznika <code class="delphi"> - @furious programming

0

Tak, mam to w szkole w tym momencie.

Ale super rozwiązanie! A ja zbędnie główkowałem, jakby tutaj matematycznie liczby sobie ułożyć.
U mnie profesor w szkole właśnie mi powiedział jak to zrobić, innym sposobem, no ale ja na upartego z tymi liczbami, no ale te rozwiązanie jest fenomenalne, wszystko ogranicza się do jednej procedury!

Ogromne Dzięki bardzo za pomoc i dobrej nocy życzę :))

1 użytkowników online, w tym zalogowanych: 0, gości: 1