Strona 1 z 2

[LISP] łuk multilinia

PostNapisane: wrz 10, 2017 17:03
przez wilda
Potrzebuję pomocy bo sam nie dam rady a chciałby stworzyć lispa który wstawiałby łuk pomiędzy dwie multilinie.
Miało by to działać jak na załączonych rysunkach.
Wskazując dwie multilinie (rys.1) program "rysowałby" dwie linie (jeżeli taka jest konieczność żeby wstawić łuk) po osi multilinii (rys.2) i pomiędzy nie wstawiał łuk o podanym promieniu (rys.3).
Następnie linie pomocnicze byłyby kasowane (rys.4) a końce multilinii byłyby "dociągane" do obu końców łuku (rys.5).
Na koniec do wstawionego łuku rysowany byłby łuk równoległy odsunięty o wartość o jaką odsunięta jest druga linia multilinii (rys.6).

Re: [LISP] łuk multilinia

PostNapisane: wrz 10, 2017 21:22
przez kojacek
wilda napisał(a):Potrzebuję pomocy bo sam nie dam rady a chciałby stworzyć lispa który wstawiałby łuk pomiędzy dwie multilinie.
Miało by to działać jak na załączonych rysunkach.
Wskazując dwie multilinie (rys.1) program "rysowałby" dwie linie (jeżeli taka jest konieczność żeby wstawić łuk) po osi multilinii (rys.2) i pomiędzy nie wstawiał łuk o podanym promieniu (rys.3).
Następnie linie pomocnicze byłyby kasowane (rys.4) a końce multilinii byłyby "dociągane" do obu końców łuku (rys.5).
Na koniec do wstawionego łuku rysowany byłby łuk równoległy odsunięty o wartość o jaką odsunięta jest druga linia multilinii (rys.6).


Problem ciekawy, ale i niełatwy zdaje się. Mam pewien pomysł, muszę sprawdzić czy dobrą drogą podążam... ;)

Re: [LISP] łuk multilinia

PostNapisane: wrz 10, 2017 21:36
przez wilda
Dla moich celów (dla uproszczenia) wystarczy, że multilinia będzie miała jeden segment i jedną linię odsunięta od osi (razem dwie linie)

Re: [LISP] łuk multilinia

PostNapisane: wrz 12, 2017 21:03
przez kojacek
wilda napisał(a):Dla moich celów (dla uproszczenia) wystarczy, że multilinia będzie miała jeden segment i jedną linię odsunięta od osi (razem dwie linie)


Ja myślę o bardziej skomplikowanej materii. Tak bardziej ogólnie to przewidywane problemy:
1. Wybór (dwukrotny) prawidłowej multilini. Prawidłowe to:
2. Otwarte (muszą się dać zaokrąglić)
3. Różne (jako obiekty), ale jednakowe pod względem (skali / stylu / wyrównania)
4. Jeśli wielosegmentowe - który segment wybrany / który zaokrąglany - także
5. Jak wyżej - kierunek multilinii (obie schodzą się początkami / końcami / lub są różnie skierowane)
6. Lokalizacja na płaszczyźnie (muszą być możliwe do zaokrąglenia)
7. Inne?

Pomysł jest taki:
Po prawidłowym wyborze, określeniu promienia... wyrysowanie po punktach multi, nowych obiektów (linie lub polilinie), następnie ich zaokrąglenie. Jeśli operacja udana, pobranie danych łuku, wymazanie elementów, wrysowanie łuku + odsunięcie zgodnie ze skalą typami linii kolorami itp. Na koniec "dociągnięcie" dwóch multi do końców łuku.

Re: [LISP] łuk multilinia

PostNapisane: wrz 12, 2017 23:18
przez wilda
Dlatego świadom tych wszystkich wymienionych problemów sugerowałem wcześniej że wystarczy na początek że program będzie działał tylko na określonych multiliniach (jednosegmentowe z dwiema liniami).
Etap sprawdzania poprawności wybieranych multilinii byłby sprawdzany analogowo przez użytkownika.
Przedstawiony pomysł to dokładnie to co pokazałem w pierwszym poście.
Myślę że można by zacząć od drugiego etapu tzn bez sprawdzania poprawności wybranych multilinii zakładając że użytkownik jest świadomy co wybiera. Jak by to dobrze działało to można by było rozbudować o sprawdzanie multilinii.

A jeszcze jeżeli chodzi o podane problemy, to jeżeli potrafi się pisać takie programy dla multilinii jak Mledit.vlx to nie powinno być chyba większym problemem sprawdzenie powyższych warunków :wink:

Re: [LISP] łuk multilinia

PostNapisane: wrz 13, 2017 15:40
przez kojacek
wilda napisał(a): Dlatego świadom tych wszystkich wymienionych problemów sugerowałem wcześniej że wystarczy na początek że program będzie działał tylko na określonych multiliniach (jednosegmentowe z dwiema liniami).
Etap sprawdzania poprawności wybieranych multilinii byłby sprawdzany analogowo przez użytkownika.
Przedstawiony pomysł to dokładnie to co pokazałem w pierwszym poście.
Myślę że można by zacząć od drugiego etapu tzn bez sprawdzania poprawności wybranych multilinii zakładając że użytkownik jest świadomy co wybiera. Jak by to dobrze działało to można by było rozbudować o sprawdzanie multilinii.

A jeszcze jeżeli chodzi o podane problemy, to jeżeli potrafi się pisać takie programy dla multilinii jak Mledit.vlx to nie powinno być chyba większym problemem sprawdzenie powyższych warunków :wink:


hehe. coś da się zrobić :) może być kwiecień... ;) :?:

Re: [LISP] łuk multilinia

PostNapisane: wrz 13, 2017 18:23
przez wilda
wolałbym nie!

Re: [LISP] łuk multilinia

PostNapisane: wrz 13, 2017 22:51
przez kojacek
wilda napisał(a):wolałbym nie!


Póki co pierwsze próby dają takie coś <klik>:

filletmline0.gif

Re: [LISP] łuk multilinia

PostNapisane: wrz 14, 2017 00:52
przez wilda
Jak nie liczyć to jest to już czwarty etap (4ty rysunek z pierwszego postu) z sześciu.
To jak nie liczyć to 66 koma 6 procent roboty zrobiona! Super!
Wygląda, że nie trzeba będzie czekać do kwietnia :wink:

Swoją drogą ciekawe zagadnienie (łuk na multilinii), a nikogo więcej to nie zainteresowało?

Re: [LISP] łuk multilinia

PostNapisane: wrz 14, 2017 08:41
przez SOYER__1
Mnie bardzo interesuje łuk na multilini - ale podobno się nie da.
Jeden Pan (były miłośnik VBA) kiedyś się chwalił na Forum że coś takiego (łuk na multilini) robi z pomocą narzędzia VBA.
Da się żyć bez tego. Mutilinia ma sporo niedoskonałości - ale ogólnie jest bardzo przydatna i nie doceniana.