Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][GD] klasa do rysowania okien (PCV)
exseerius
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 31.12.2006

Ostrzeżenie: (0%)
-----


Witam,

Mam megaśny problem polegający na napisaniu klasy, która rysowalaby okna (schematy okien do aplikacji sprzedażowej dla klienta).

O tyle, o ile zwykłe namalowanie kwadratu z ramą nie sprawia mi problemu, o tyle ksztalty okien są różne i mają różne parametry i w zależności od tego szkice różnie wygladają (kwadratowe pojedyncze, pojedyncze otwierane, podwójne, podwójne otwierane, półokrągłe, okrągłe, z okrągłym zwieńczeniam, z trójkątnym zwieńczeniem)

Każde okno składa się z ramy i płata otwieranego oraz szkicu w jaki sposób się otwiera (takie linie na szybie w kształcie V).

Zastanawiam się w jaki sposób opisac okno, na chwile obecna wymyśliłem, że okna opisuję i przechowuję w db jako serialize arraya:

  1. 'type' => 'R',
  2. 'corners'=>array(
  3. array(0,0),
  4. array($x1,0),
  5. array($x1,$y1),
  6. array(0,$y1)
  7. )
  8. );



a potem staram sie to parasować (type = R oznacza ze jest to prostokąt, a corners to po kolei, lewy górny, prawy górny, prawy dolny i lewy dolny - wiem że wystaczą tylko dwa cornersy do rysowania prostokata, ale tutaj mam wiecej informacji)

Za X1 i Y1 podstawiane sa rzeczywiste wartosci wpisane przez usera (oczywiscie odpowiednio skalowane).

OK, to by był mój problem, mam pytanie, czu ma ktoś pomysł inny na opisywanie tych okien i sposób parasowania tego do grafiki.

Poniżej przykłady tych prostrzych okienek, pozniej postaram sie dołączyć inne przykłady.

(IMG:http://www.elokaty.home.pl/window_1.png) (IMG:http://www.elokaty.home.pl/window_2.png) (IMG:http://www.elokaty.home.pl/window_3.png) (IMG:http://www.elokaty.home.pl/window_4.png) (IMG:http://www.elokaty.home.pl/window_5.png) (IMG:http://www.elokaty.home.pl/window_6.png) (IMG:http://www.elokaty.home.pl/window_7.png) (IMG:http://www.elokaty.home.pl/window_8.png) (IMG:http://www.elokaty.home.pl/window_9.png) (IMG:http://www.elokaty.home.pl/window_10.png)

Ech widze, że problem jest na tyle zlożony, że malo kogo interesuje a Ci co zerkna nie potrafią pomóc (IMG:style_emoticons/default/tongue.gif) Ni nic, pozostaje walczyć samemu (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja to wpierw zdefiniowałbym klasę "kontenera". Już tutaj umieściłbym definicję możliwych opcji. Zależnie od rodzaju okna, inne parametry wymagane dla konstruktora:
- prostokąt -> lewy górny i prawy dolny róg
- koło -> środek i promień
- półokrąg, wycinek -> środek, promień, kąt startu, kąt końca (przyjmując za 0 stopni przykładowo promień idący od środka pionowo w górę)

Okna wewnętrzne byłyby instancjami wewnętrznymi tej głównej (kompozycja). Otwieranie byłoby pewnym problemem w czystym php. Tutaj myślę, że użycie JavaScriptu by wchodziło w grę.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 17:05