Matte: Inverterad Kinematik

Permalänk
Medlem

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

Visa signatur

RTX 3070 || Ryzen 5600X || 32GB 3600MHz || PCIe SSD goes BRRRRR

Permalänk
Medlem

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