![]() |
![]() |
![]()
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:
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. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Ech widze, że problem jest na tyle zlożony, że malo kogo interesuje a Ci co zerkna nie potrafią pomóc ![]() ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Może i ktoś potrafiłby pomóc ale:
1. Jesteś na forum od jakiegoś czasu i nie widzę żebyś jeszcze komuś pomógł. Same prośby o pomoc. 2. Mało kto się zna na budowie okien na tym forum. Ja na pewno się nie znam. Wypisujesz różne możliwe okna piszesz: "Poniżej przykłady tych prostszych okienek, później postaram się dołączyć inne przykłady.". Słowem kluczem jest tutaj inne przykłady. Ja widziałem ten temat ale czekam nadal na te inne przykłady. Ciężko jest pomóc jak się ma zbiór nieskończonej ilości możliwych okien. 3. Piszesz o wartościach wpisanych przez usera, są to tylko wymiary czy też typ okna. Np. interesuje mnie czy te podokna w oknach muszą być jakoś konfigurowalne czy są ustawione na sztywno. 4. Najlepiej jakbyś podał specyfikację techniczną, warunki umowy z klientem dotyczącymi funkcjonalności jakie ten skrypt ma zapewniać. Ten post edytował jaslanin 1.06.2010, 10:10:54 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#3
|
|
![]() 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ę. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 55 Pomógł: 0 Dołączył: 31.12.2006 Ostrzeżenie: (0%) ![]() ![]() |
OK, to troche dokładniej i wklejka tego co juz sam napisałem - trochę chaotyczne, ale to z racji na małą ilośc czasu - projekt robię sam więc komentarze dla mnie sa z reguły nieknieczne, podczas refabrykacji sa u mnie dodawane).
Klasa: window.class.zip Ogólnie na chwile obecna sa tam dwa rodzaje generowania okien (zacząłem piać od nowa, ale starą logikę zostawiłem) I tak stara wersja wywoływana jest tak:
Nowy sposób działa tak:
$model to oczywiście zapis okna w tabliczy do dalszej obróbki, zastanawia mnie jedynie czy ma ktoś inny sposób na rozwiązannie takiego "modelu". Wartości podawane przez usera, to typ okna, wysxszerokość poszczególnych bloków, typ otwierania okna - takie dane podawane sa w pierwszym formularzu i na tej podstawie powinien wyrysować się szkic okna. Okienka które podałem w pierwszym poscie wygenerowane są moją klasą (linie oznaczające strony otwarcia okien później dodane w gimpie). Tutaj przykłady wszystkich mozliwości okien: ![]() btw. @jaslanin - chętnie pomagałbym innym, natomiast ilość czasu jakim dysponuje nie pozwala mi przesiadywać na forach, a zarejestrowałem sie, aby móc właśnie czasem dopytać o coś czego nie wiem a dla innych to pikuś. Ten post edytował exseerius 2.06.2010, 12:36:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:10 |