Sign in to follow this  

derive one point from independetly moving points

This topic is 4254 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi! Here is the description of the problem: Lets assume we have some points on a plane, and we know the exact configuration of them (distance between each pair), what is fixed in theory. Now this points start to move in the same direction but because of noise and other factors they wont travel the same way. The goal is to derive one point from the several (be the center of the other) and get its moving based on the others and if one individual points moving is inconsistent with the others then put it back to its right place. So make a self-calibrating system. I hope my lame description makes sense. So please can you give me some dircetions where to start, where to look around, a correct name of this problem if exist and so on. Thank you!

Share this post


Link to post
Share on other sites
Let me see if I get this right...
You've got a bunch of points on a plane, at predefined, initial positions. You want to be able to allow them to move as a whole (e.g. like a cloud) while allowing for the possibility that their motion may also be affected by other parameters, that may cause them to jitter independently while moving as a whole. However you want them to maintain their original relative positions/orientations as much as possible?

If I'm not way off here, I believe you can implement this with some sort of "springs" among the points. E.g. start with a given point P0 and find its relative distances and angles from all other points P1,P2,... in the initial setup.
As P0 is allowed to move freely, you'll have to apply two forces on it from each other point, one acting on the line from P0 to that point, with magnitude proportional to the difference of their current distance with the desired one (the initial), and a rotary one, that will try to bring it back to their initial orientation.
How bigger the force will be with respect to the distance and angle, will effectively control their "stiffness".
This isn't gonna scale well for an increasing number of points (its O(n2)), but I think it's pretty much the way to it. (unless of course I completely missed your point!)

edit:
But if this is it, what do you mean with: "The goal is to derive one point from the several (be the center of the other) and get its moving based on the others and if one individual points moving is inconsistent with the others then put it back to its right place"

Share this post


Link to post
Share on other sites
Alright I think I have an idea but I dont know much about your problem. This is sorta like the previous user in that it is a spring system but it will operate in O(n) instead and so it will scale well. Alright so what you will need to find initially is an average point, which you can find using the average on each axis, and you will need an average rotation, which you will need to find based on some arbitrary axis, you may even need quaternions or some such.
Once you have found these then rotate all of your points by the average rotation and record there location relative the average point. now, each frame you will find the average point and translate the points by its opposite (make the average the origin), then you will find the average rotation and rotate them to be in their origional frame of reference. now just apply some force to them so that they tend back towards their origional positions and undo the translations and rotations.
Hopefully you followed that. to sum it up you are just saving their origional positions and enough date (the average and rotation average) so that you can re-orient them to their origional frame of reference, then you just apply a force to make them tend toward their origional positions.

Share this post


Link to post
Share on other sites
Is it squad formation logic you are seeking? That is, for example, having a squad of 10 archers in a RTS moving from point A to point B, and along the way, individual archers may be forced to temporarily leave the formation to avoid an obstruction, and then immediately rejoin it once clear of the obstruction?

Share this post


Link to post
Share on other sites
Thanks for your reply.
First I try to clear things a bit. What I have, are some points, which positions i can read, but as time moves, these obtained values get very unaccurate. So i want derive from them one point which position is more accure. All this based on the condition that they have fixed initial configuration, so if one point seem to flow away to much, i know that can't be.
I like these springs idea what you wrote about, i think it can be used.
And scaling isn't a problem, because i don't have that much point.

Share this post


Link to post
Share on other sites
Yes, i need the centroid, but thats not my main problem.
Anyway, i found this thread, and that is exactly what i want to do. But i only have a triangle for the first try, which edges deform due to the unknown forces applied to the vertices. Now i try to implement a mass-spring system. I hope it will work.

Share this post


Link to post
Share on other sites

This topic is 4254 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this