Zobrazit plnou verzi příspěvku: automaticke vyrovnani bodu do linie

Xebece
28.08.2008, 22:02
Ahoj,
potreboval bych programek pro cad nebo microstation, ktery by umel vyrovnavat body umistene priblizne v linii na linii prolozenou mezi pocatecnim a koncovym bodem. S programovanim jsem uplne na zacatku a zatim nejsem schopen nic takoveho vytvorit. Byl by nekdo schopen mi pomoci?
 
Diky moc
Xebece

Vladimír Michl
28.08.2008, 22:05
Pokud máte přístup k AutoCADu Civil 3D, takováto funkce tam je:
http://www.cadforum.cz/cadforum/qaID.asp?tip=5760

Buba
29.08.2008, 07:39
Keďže ja nemám Civil, tak by som to riešila pomocou _ROTATE napríklad na X-ovú os a cez VLASTNOSTI by som si nastavila príslušné súradnice, v tomto prípade X na jednu hodnotu.

alfred
29.08.2008, 08:27
To neni spatny napad, ale bylo by asi lepsi misto otaceni pouzit uzivatelsky souradny system. Pak body "mezi" vybrat a nastavit ve vlastnostech NULU.

Nicmene tohle je forum programovani a nejsem si jisty jestli tento rucni zpusob pomuze...


Buba
29.08.2008, 09:40

V rýchlosti som si to nevšimla.

Ferdinand
29.08.2008, 11:18
To "pracnější" by fungovalo asi takhle:
(B1....1. bod, BP....poslední bod)
- nakreslí čáru B1BP mezi B1 a BP
- z B1 nakreslí kruh k2 s radiusem r2 přes B2
- otočí B2: střed otáčení = B1, poč. bod = B2, kon. bod = průsečík k2 a B1BP
- vymaže k2
- z B1 nakreslí kruh k3 s radiusem r3 přes B3
- ...atd...
- až dojde k BP, vymaže B1BP
ED: Teď vidím, že v profilu máte 3d Max (neznám)...Všechny body jsou v rovině  Protože když budou mít různé Z-souřadnice, tak to by musel být asi na průsečíku roviny B1BP s válcem k2...kP.Ferdinand2008-08-29 11:25:18

chose
03.09.2008, 15:45
Nevim, jestli to je jeste aktualni, ale ve VBA by to melo byt snadny. Delalo by se to matematicky, zadny konstrukcni ulohy. Staci sestrojit rovnici primky (pocatecnim a koncovym bodem) a pak prochazet jednotlive body, ktere se maji umistit do teto primky. Predpokladam, ze se jedna o 3D. Pak vektor dane primky je normalou roviny (v rovnici ax+bx+cz+d=0 jsou to ta a,b,c), ktera se necha prolozit danym bodem (dopocita se d aby rovnice platila) a tim padem uz bude znam prusecik dane roviny a primky, coz je hledany bod. chose2008-09-03 16:05:44

Buba
04.09.2008, 09:00
To: chose
ax+by+cz+d=0 (maličký preklep) :)

chlebovsky
10.09.2008, 12:44
Jinak na vyrovnání bodů do jedné přímky existují přímo rovnice, je to vlastně statistika. A funguje to jak v prostoru tak v rovině, je to prostě velmi složitý vzoreček ze kterého vypadne rovnou rovnice přímky...
Jsou tam nějaké faktoriály, limity a další. Braly jsme to na škole. Navíc to má tu výhodu/nevýhodu záleží na úhlu pohledu, že ta výsledná přímka, nemusí za každou cenu procházet ani prvním a ani posledním bodem. Prostě taková nejbližší aproximace. Někde bych ten vzoreček musel vyštrachat z výšky z matyky, brali jsme to tam.

alfred
10.09.2008, 13:11
Myslim ze linearni regrese je trochu neco jineho, nez na co byl smerovan puvodni dotaz, ale kdo vi... :-)

Buba
10.09.2008, 13:38
Aproximácia priamky
Na preloženie daných hodnôt priamkou (lineárnou funkciou,
polynómom prvého radu) s rovnicou y = f(x,a,b) = ax + b vypočítame
koeficienty podľa nasledujúcich vzorcov:
 
a=(n*SUMA(xi*yi)-SUMA(xi)*SUMA(yi))/(n*SUMA(xi^2)-(SUMA(xi))^2)
b=(SUMA(xi^2)*SUMA(yi)-SUMA(xi)*SUMA(xi*yi))/(n*SUMA(xi^2)-(SUMA(xi))^2)