Zobrazit plnou verzi příspěvku: Os medzi krivkami

Janci
23.03.2007, 13:17
Dobry den,
moze mi niekto poradit ako urobim os medzi dvoma krivkami ktoré nie su rovnobezné? Dakujem. Janci

Vladimír Michl
23.03.2007, 13:35
Základní metoda je v tipu:
http://www.cadforum.cz/cadforum/qaID.asp?tip=5358
 
Pokud jsou ony křivky "divočejší", bude potřeba použít např. geometrickou metodu středů tečných kružnic.

Janci
23.03.2007, 14:10
Dakujem za odpoved. Avsak ja by som potreboval urobit os kriviek, ktore su tvorene krivkami SPLINE. Vedeli by ste mi poradit aj s tymto? Neviem ci sa to vobec da urobit. 

Mantlík
23.03.2007, 14:29
spline nebrat
 
a když už musíte, probíhalo tu několik diskuzí o jejich převodu na křivky

Ferdinand
23.03.2007, 14:42
Já bych to dělal asi takhle (možná že blbě...):1. Nakreslím Čáru1 z 1. koncového bodu Spline1 do 2. koncového bodu  Spline12. Nakreslím Čáru2 z 1. koncového bodu Spline2 do 2. koncového bodu  Spline23. Nakreslím Čáru3 (to by měla být ta OSA1) z polovice Čáry1 do polovice Čáry2Pokud potřebujete osu symetrie (jsou-li Spline1 a Spline2 "přezrcadlené" dle této OSY2), tak4. Nakreslím Čáru4 (to by měla být ta OSA2) jako kolmici na Čáru3 a umístím ho tak, aby procházela přes polovici Čáry3

Janci
27.03.2007, 10:19
Vdaka za odpoved ale ide mi priblizne o toto. Priklad. Mam dve vrstevnice, priklad 115,00 a 116,00,  ktore nie su usecky ale krivky (spline, pline... v podstate vsetko ostatne okrem priamok a useciek). V lubovolnom mieste su vzdialene od seba viac v inom mieste menej. Teraz si potrebujem vytvorit vrstevnicu 115,50, co je prakticky (aj ked nie vzdy) os medzi 115,00 a 116,00. A neviem ako. Vsetko je to riesene v rovine, nie v priestore. Je to samozrejme len priklad s tymi vrstevnicami ale nevedel som najst lepsi priklad. Myslel som si ze existuje neaky prikaz, ktory ked kliknem na obe krivky, vytvori mi medzi nimi os. Ale asi som sa mylil. Ak by niekdo vedel ako na to tak prosim poradte. Vdaka. Janci.

Ferdinand
27.03.2007, 11:13
Aha, takhle... Tak to bych použil příkaz _offset s volbou _T

Mantlík
27.03.2007, 12:21
[QUOTE=Ferdinand]Aha, takhle... Tak to bych použil příkaz _offset s volbou _T [/QUOTE]
Neřekl bych, že to je ono ....
Tím se nedá postihnout ona nepravidelná vzdálenost
 
Stejně tak se obávám, že to tak snadno nepůjde ani naprogramovat
 

Janci
27.03.2007, 12:31
To s tym OFFSET nie je to co by som od toho cakal. Potreboval by som vlastne interpolaciu medzi tymi krivkami. Lebo urobit si v par bodoch stred medzi krivkami a potom si tie stredy pospajat krivkou sa mi zda nie prilis koser. Zaujimalo by ma ako sa s tymto da vysporiadat. Urcite to uz niekdo potreboval vyriest. 

m.studenovsky
27.03.2007, 12:58
Já vidím jako jedinou možnost to udělat růčo - tj. rozdělit oba úseky vrstevnic na stejný počet částí podle pořadované přesnosti a pak proložit spline středy příslušných dvjic bodů.

Vladimír Michl
27.03.2007, 13:04
Už se to tu před časem řešilo - na BBS (VIP serveru) na to máme LISP utilitu Contour. Algoritmicky to není jednoduchá úloha, lze řešit několika metodami, výsledkem je aproximovaná osová křivka.

Mantlík
27.03.2007, 13:18
Je otázkou, co je "košer" a co není .....
Spíš je důležitější konkrétní případ, o co se jedná, jaký je rozsah a hlavně jakou přesnost potřebujeme ....... Není vždy nutné přesně pracovat s nepřesnými čísly (a přitom se tvářit, že jsou kdovíjak přesná)
Pokud jsem byl postaven před podobný problém, "zbaběle" jsem unikl právě přes "střední body vhodných spojnic mezi křivkami". Kolik jich bylo, záleží i na tvaru těch křivek - a nakonec jsem i onu výslednou "osu" upravil
Ale uznávám, že můj profesní pohled na požadovanou přesnost může být úplně jiný, než pohled strojaře, kterému jde o desetiny či setiny mm (ale tam se zase moc nepravidelných nerovnoběžných linií nevyskytuje)
 
PS. Vezmu-li to matematicky, tak celý život jsou přibližné aproximace, intuitivní intra- a extra- polace, pohybování se v určitých mezích, žádné přesné výpočty 

Ferdinand
27.03.2007, 13:21

[QUOTE=Mantlík]
Neřekl bych, že to je ono ....
Tím se nedá postihnout ona nepravidelná vzdálenost... [/QUOTE]No prvně se buď "střelí" wodoka (_T), anebo se 1.offs.bod stanoví: nakreslit čáru5 z _nearest(1) do _nearest(2) a pak první _offset vést přes _midpoint čáry5 - a pak ty další se _offsetnou přes _endpoint toho předchozího.

Janci
27.03.2007, 13:33
Medzi VIP nepatrim, software som kupoval na Slovensku v Store, kde na diskusnom fore ako sa hovori"skapal pes", takze sa asi k Lisp Utilite nedostanem.  Budem si teda musiet neako poradit. Vdaka za odpovede.

pajo5
27.03.2007, 13:38
Kedze sa jedna o vrstevnice - teda vystup z digitalneho modelu terenu(DMT). Doporucil by som ist cez DMT, nakolko to neni len nejaka os medzi krivkami - ale dalsie vztahy ku krivosti terenu t.j. k dalsim vrstevniciam.


Vsetko sa da naprogramovat - len musite mat jasno v teorii. T.j. ked budete mat matematicku funkciu, ktora vam vypocita polohu bodu, da sa to naprogramovat na celu krivku. 
Ked ale zoberiete len dve vrstevnice, bez ohladu na dalsie - mozete spravit povrch medzi dvomi profilmi  a potom to rozrezat rovinou vo vyske tej polvrstevnice. Ale bude to len priblizne urcenie jej priebehu, lebo nezohladnite teren za vrstevnicami.

Mantlík
27.03.2007, 13:43
ad. Studenovský:
Nevím, jaké máte se SPLINE zkušenosti Vy, ale s ohledem na editace je to podle mých zkušeností ta nejnemožnější entita, jinak souhlas
 
ad Ferdinand:
Pokud je každý úsek samostatná křivka, pak možná, ale je-li to dlouhá křivka s mnoha úseky, pak úpravami strávíte víc času, než nakreslením křivky nové
 
ad. V. Michl.
Na contour.lsp jsem poněkud pozapomněl, ale po přezkoušení už mi došlo, proč asi. Pokud jsou obě křivky "přibližně podobné", pak to dá slušný výsledek. Pokud však jsou "více odlišné", natož různě vykousnuté, tak už je to horší (a nepomůže ani zvýšení přesnosti - to vede jen k většímu počtu úseků)
Někomu to ale může takhle stačit
To však není kritika, jen konstatování - čistě matematicky tuhle problematiku vystihnout opravdu asi jen tak nejde ... 

m.studenovsky
27.03.2007, 13:57
Získané body nemusím nutně proložit pomocí spline, to už ať si  každý zváží.
Problém vidím spíš v definici požadované "osy". Nejkorektnější mi připadá metoda středů, jak bylo diskutováno. Stejný výsledek by mělo poskytnout rozříznutí plochy v půlce, jak navrhl pajo5.

Buba
27.03.2007, 15:30
Dalo by sa to prekresliť do 3D telesa, v polovici vzdialenosti si urobiť rez a premietnuť to do roviny xy.

Buba
27.03.2007, 15:32
Pardón nečítala som celú diskusiu. Pajo5 to už napísal predo mnou.

m.studenovsky
27.03.2007, 15:35
Pravděpodobně by šlo využít i šablonování s následným řezem v půlce. Zatím jsem ale s šablonováním neexperimentoval.