Matte: Inverterad Kinematik

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2011

Matte: Inverterad Kinematik

Tjo! Jag ska programera ett finger som kommer röra sig längst X och Y axeln. Den kommer ha tre stycken rotationspunkter: första vinkeln är v1, de två andra är lika och kallas för v2. Så det blir en likbent triangel. Toppen av den triangeln är v3 och är då v3 = 180-v2*2

Längderna på armarna är såklart konstanta, men utifrån att jag inte vet den exakta längden än så kallas de a, b och c. Men de kommer ha bestämda värden som är större än 0.

För att göra det mer realistiskt så kommer: a >= c
För att det sista benet av fingret är mindre än det första.

Punkterna ligger på
(0,0)
(A,B)
(C,D)
(X,Y)

den första punkten (0,0) kommer vara bestämd för att den är (0,0).
Sedan så kommer (X,Y) vara bestämd utifrån jag animerar punktens position.
Men punkterna (A,B) och (C,D) kommer vara okänd, men de kommer bero på (X,Y)

Nedan så finns det en liten kort "ritning" på hur informationen är strukturerad.
Jag kommer programera den i Unity 3D Javascript, men jag vill bara ha formlerna för (A,B), (C,D), v1, v2 utifrån positionen (X,Y)

http://imageshack.us/photo/my-images/31/utrkning.png/

Tack på förhand

Edit:
Min mattekunskap är på matte E nivå, så jag kan inte matriser

B ska ju vara > 0, så fingret inte blir CP

Mobilt: Acer Aspire TimelineX 5820TG (HD5650m, i5-450m 2.4GHz, 2*2GB 1066MHz)
Fatboy: i5 2500k 4,3GHz || Antec KÜHLER H₂O 620 || Corsair XMS3 Vengeance 2*4GB 1600MHz || ASUS EAH7950 Direct CUII || Creative SoundBlaster Audigy 2 ZS || Corsair HX 750W || NZXT Phantom (vit) || ASUS P8Z68-V PRO || Corsair SSD Force Series 3 60 Gibibyte + Verbatim 128 Gibibyte + ett antal mekaniska totalt 5.75 Tibibyte ||

Trädvy Permalänk
Medlem
Registrerad
Jul 2001

du får väl antagligen skriva om resten av koordinaterna med trigonometri

D=Y+c*sin(v2)
C=X-c*cos(v2)

osv, du får jobba dig igenom figuren

ok såg att det var rätt enkelt...

D=B
A=C-b

och 0,0 är 0,0