Jump to content
• Advertisement  # .chicken

Member

62

470 Neutral

• Rank
Member

## Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

1. Yeah, sorry I realised that. Seems like the problem wasnt fully clear to me, yet..
2. Okay, someone over at math.stackexchange.com had an answer for me. Looks like it has to be computed numerically. Thank you for your help anyway ;)
3. Okay thank you first of all, that already helped a little bit, but I'm afraid I dont think this will work. Heres the problem drawn again, this time without mistakes hopefully (sorry about that, it was kinda late for me already). So the problem is that |A| != |B| and thus your equation of alpha = 3/5*angle won't hold!? Is there any way to extend that relation with the length information of A and B? I couldn't find anything that would help me there..if I had just payed more attention to trigonometry :S   EDIT: So we know the slope of the target vector, lets call it m. We can express E as a combination of A and B. This leaves us with E.x = |A| * cos(alpha) + |B| * cos(2/3alpha) E.y = |A| * sin(alpha) + |B| * sin(2/3alpha) m = E.y / E.x However, I'm not able to solve this..
4. Okay seems like I didn't explain the problem properly. Sorry for my poor paint skills...   So I know the length of A and B and I know that the second angle is 2/3s of the first angle (relative to the first). I want to choose alpha, so that E points in the direction of T. Thanks in advance.
5. Hi, I'll try to describe the problem im facing as accurate as I can. I have two vectors, say A and B and a target direction vector T. I want E = A+B to have the same direction as T. A is the vector (R1,0) rotated by an angle alpha and B is the vector (R2, 0) rotated by 5/3alpha.   So we have this: A = R1 * (cos(alpha), sin(alpha)) B = R2 * (cos(2/3alpha), sin(2/3alpha)) E = A + B T = (Tx, Ty) R1 and R2 are known. T is known as well. I was thinking of something like: |E| * normalized(T) = E I can't seem to solve the equation though, I'm not sure if my trigonometry knowledge is not good enough or if its simply not possible...   Can anyone help me out please? Thanks!
6. Thank you for the answer. However the coordinate systems are not axis aligned, so I need a rotation as well. As you can see, right now im translating first, then scaling and the rotating (hopefully with the correct matrix?). Is the code I've posted above correct?
7. After working on this for days now and still having some issues with it, I'm afraid I might need some help.   Ok my setup looks like the following: I'm using a tracking system (Motive) with four cameras to receive positional data from markers and rigid bodies. That data is in trackingCoordinateSpace and I need it transformed to openGLCoordinateSpace, so that (0,0,0) is at the center of my display. I tried to illustrate it...   Ok so I calculate my X,Y,Z axis from markers fixed on three corners of my display, like shown in the picture, I calculate then center of the display (lets name it centroid) and I calculate the scale from one coordinate system to the other. I then go from tracking system coordinates to OpenGL coordinates with this transformation matrix: Is that correct so far?   I'll leave it at that for now, so it doesn't get too confusing. I'll have another question once this is solves though.
8. Thank you @both of you. I'll take a closer look at it tomorrow, got to get some sleep now!
9. Thanks for the links, however, I'm still stuck here. I didn't know this was called "Inverse Kinematics", so I started googling a bit. I found this paper but unfortunately they only scratch on the surface of how they solve this. They provide a formular for the relationship between the DIP and PIP angles, but without knowing the exact orientation of either the MCP or the PIP, I have no idea how to solve this.. I could try an iterative method, however I think there should be a way to figure this out 100% correctly with more or less easy math..
10. Im still a bit stuck here, although I think this shouldn't be too difficult, I can't seem to figure it out without a bruteforce approach. Any help appreciated.
11. Ok thanks for the answers. @Nypryen: Am I correct with the assumption that finger angles can bend somewhat between 0 and 95degrees?   Ok, lets say the finger is split into 3 joints represented as vectors (2d): v1 (MCP), v2 (PIP), v3 (DIP). Let v1 = B-A v2 = C-B v3 = D-C   We know that 1/2acos(dot(v2,v3)) = acos(dot(v1,v2))    // cause DIP roughly bends half as much   We also know |v1|,|v2|,|v3|, let them be 1, 0.75 and 0.5   We know A and D. And that C = D - v3 B = A + v1   I'm still a bit stuck though, how do we progress from here? Do I have to substitute v2 with (C-B)=(C-v3)-(A+v1) in the dotproduct equation?
12. Ok, what I'm trying to do is to reconstruct the angles with which a finger is bend at all the joints. However I only have the start and end point of the finger. Sorry, I got bad drawing skills, but something like this. Red spots are known, black spots, I would like to know. I also know the angle at the finger starting point, so how much its bend in relation to the overall hand.   Thank you for the help so far.
13. Ok, I have a segment of four (2D) joints with a fixed and known length. I only know the position of the start and end joints. I'm trying to find the two missing joints' positions, with the restriction that the angles between two joints are restricted to 0 < a < 95.   I know that both points have to lie somewhere on the radius of known fixed lengths around the start and endpoints. I know the length that connects those two points. So how do I find the exact position of the two missing points?   Thanks in advance.
• Advertisement
×

## Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!