Forum użytkowników programu Rhinoceros 3D

RHINOCEROS => Rhinoceros w praktyce => Wątek zaczęty przez: HAV w 21 Sierpień 2009, godz.17:46

Tytuł: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: HAV w 21 Sierpień 2009, godz.17:46
Kojarzy ktoś może, czy r4 ma fcję pozwalającą na wrysowanie krzywej o konkretnej długości (zdefiniowanej przez siebie), pomiędzy już istniejące krzywe? Trochę to zagmatwane chyba... chodzi mniej więcej o coś jak w załączniku: czerwona i niebieska krzywe są już wrysowane, zielona to krzywa o zdefiniowanej przeze mnie długości (przyjmijmy dodatkowo, że ma być prostopadła do którejś z krzywych, choć na rys. tego nie widać) i wrysowana przez rhino. Jest w ogóle coś takiego?
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: botak w 21 Sierpień 2009, godz.18:36
Jest prostopadła "do" i "od" krzywej gdzie można określić jej długość
Ale chyba aż takiego automatu aby umiejscawiał tą krzywą - to nie ma.

Jest to bajecznie proste do wykreślenia, więc i skrypt pewnie jakiś się da napisać...
Ale do tego to już musisz wołać Jarka :)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: HAV w 22 Sierpień 2009, godz.07:41
O prostopadłych wiem, że jest łatwe do wykreślenia też... choć jednak trochę upierdliwe (http://www.forum.armacenter.pl/images/smiles/jezor2.gif)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: kruk w 22 Sierpień 2009, godz.09:08
póki są to proste a nie krzywe to możesz zrobić to uśredniając dwie linie, a następnie skalując wynikową linię w 1 wymiarze. oczywiście o ile o taki efekt ci chodzi ;)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: Jarek w 22 Sierpień 2009, godz.17:39
HAV - Jezeli dobrze zrozumialem o co chodzi, to ten skrypt powinien Ci pomoc ( z tego co wiem tylko z komend Rhino nie da sie tego latwo zrobic ).
Wybierasz punkt przeciecia, punkty definiujace linie przyprostokatna i przeciwprostokatna, a nastepnie podajesz dlugosc poszukiwanego odcinka...

( botak - wywolales wilka z lasu :-)


Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: botak w 22 Sierpień 2009, godz.17:56
Jarek jest jak Spiderman. Zawsze zjawia się tam gdzie ktoś ma kłopot  ;D
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: Odyniec w 22 Sierpień 2009, godz.18:08
amen  ;D :) ;)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: HAV w 22 Sierpień 2009, godz.18:29
O dzięki Ci o Wielki Jarku, Ty nasz guru rs'a (http://www.forum.armacenter.pl/images/smiles/icon_lolek.gif)

zaraz oblukam coś dobrego mi tu zaserwował (http://www.forum.armacenter.pl/images/smiles/icon_twisted1.gif)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: Jarek w 22 Sierpień 2009, godz.18:57
Ooops, przepraszam, cos pomieszalem ( trygonometria w szkole byla dawno ).
Ta wersja ma poprawke, poprzednia nadaje sie do kosza. Sprobuj jeszcze raz.

http://www.screencast.com/users/jarek/folders/Jing/media/9c3f2177-4629-4295-b0c1-9fae3881dfe0
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: botak w 22 Sierpień 2009, godz.19:13
No tak, ale to działa w określonych przypadkach
1. "Krzywe" muszą być prostymi
2. Muszą się przecinać
3. Musi być wrysowana przeciwprostokątna

A jak by tak napisać coś takiego co znajduje wspólne punkty pomiędzy zbiorem punktów równo oddalonych od danej prostej a drugą prostą? Połączenie takiego punktu wspólnego wektorem prostopadłym do danej prostej jest już raczej mało skomplikowane.

Generalnie to wyglądało by to tak jak na zrzucie, a pisząc prościej znajdujemy taki odcinek robiąc:
1. "pipe" do okoła prostej lub krzywej do której ma być prostopadły szukany odcinek o promieniu długości szukanego odcinka
2. Znajdujemy punkty wspólne pipe'u i drugiej prostej/krzywej ("object intersection")
3. z powstałego punktu prowadzimy odcinek prostopadle do naszej pierwszej krzywej/prostej ("Line/Perpendicular tu Curve")
no i mamy

na płaszczyźnie jest to jeszcze prostsze, bo nie tworzymy "pipe", tylko wystarczy zwykły offset o wielkości szukanego odcinka, i z punktu w którym przetną się dwie krzywe prowadzimy prostopadłą do naszego odcinka.

Sprawa by się troszkę skomplikowała jeśli byśmy szukali odcinka o określonej długości, ale nie koniecznie prostopadłego. Ale to tylko dla tego, że takich odcinków mogło by być więcej.
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: HAV w 22 Sierpień 2009, godz.19:19
Super, wszystko działa, dokładnie o to mi chodziło (http://www.forum.armacenter.pl/images/smiles/icon_usmiech.GIF)

jeśli tylko dane nam będzie kiedyś się spotkać, masz u mnie browar... opcjonalnie mogę pocztą przesłać (http://www.forum.armacenter.pl/images/smiles/icon_rotfl2.gif)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: Jarek w 22 Sierpień 2009, godz.19:27
HAV - ciesze sie, ze o to Ci chodzilo. A borwar to przy okazji jakiegos zlotu fanow Rhino w Polsce :-)
botak - to juz troche inna bajka, tez sie pewnie da, ale problem ze zrozumieniem o co chodzi chyba wynika z tego, ze HAV piszac o liniach pisal 'krzywe' a Ty o dowolnych krzywych 'proste' itp. W przypadku Rhino, ktore 'Curves' to maga byc Linie, Polilinie, Krzywe NURBS, Krzywe Bezier itd. Mozna sie troche pogubic...

Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: botak w 22 Sierpień 2009, godz.19:35
jak najbardziej masz racje
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: Odyniec w 22 Sierpień 2009, godz.21:01
chlopaki, wlasnie organizuje cos takiego, ale sam nie daje rady, osoby chetne w pomocy, niech zglosza sie na priva
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: HAV w 22 Sierpień 2009, godz.21:14
A tak jeszcze przy okazji - Jarek, możliwe jest zaadaptowanie takiego skryptu, gdy jedna/obie krzywe są wrysowane jako Control Point Curve, łuk, wycinek koła etc. (załóżmy, że nadal się przecinają)?
prawdę mówiąc, trochę zmęczony jestem i sam już nie wiem, czy botak właśnie o tym nie pisał wyżej (http://www.forum.armacenter.pl/images/smiles/jezor2.gif)
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: satrab w 23 Sierpień 2009, godz.14:19
Offtopic:

chlopaki, wlasnie organizuje cos takiego, ale sam nie daje rady, osoby chetne w pomocy, niech zglosza sie na priva

Może lepiej najpierw sprawdzić ilość wstępnie zainteresowanych?
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: Jarek w 24 Sierpień 2009, godz.18:07
HAV - niestety poprzedni skrypt dziala tylko na liniach prostych i nie da sie go latwo zaadaptowac do dowolnych krzywych.
W tym przypadku jest mozliwych duzo wariantow ( brak odcinkow o zadanej odleglosci, jeden, kilka, albo nieskonczenie wiele na odcinkach gdzie dwie krzywe sa rownloegle do siebie i dzieli je zadana odleglosc ). Napisanie czegos takiego byloby mozliwe, ale zajeloby pewnie z dzien.

Zamiast tego, metoda ktora zaproponowal botak sprawdza sie swietnie:
http://www.screencast.com/users/jarek/folders/Jing/media/17500a4b-4af7-4493-a7c4-cebc65d7b409

dopisalem tylko maly kawalek skryptu ktory punkty przeciecia "pipe" laczy hurtem z zadana krzywa ( w zalaczniku ).
Tytuł: Odp: krzywa o konkretnej długości wrysowana między 2 inne
Wiadomość wysłana przez: HAV w 24 Sierpień 2009, godz.21:52
Dobra, przeczytałem raz jeszcze na spokojnie... dzięki Ci Jarek za skrypcik i Tobie botak za 'pomysła' (http://www.forum.armacenter.pl/images/smiles/icon_usmiech.GIF)