# mike_hudson_uk

Member

7

122 Neutral

• Rank
Newbie
1. ## not your average contact question

thanks all. spacedude - my curves all start from different points, albeith on the same plane (initially). i've got an algorithm pretty much sorted now, but thanks anyway. mr rhodes, i was after a way to resolve contacts, rather than find them. There is already a nice spacial search implemented which is fine for this application. in particular i was looking for a way to guarantee contact resolution with one movement (ie not move into contact with other segments) I ended up with a pretty simple vector calculation, in case anyone cares =)
2. ## not your average contact question

i should have mentioned that all these line segments have a radius associated with them. each segment is representing part of a pre-defined periodic function, and there are a few hundred such functions, all starting at the same point. I can't delete contacts, i need to move the end point of the new segment to avoid contact, and the next segment will start from that new end point position. ie i have several hundred continuous curves, and i am adding each segement of a curve into the system one by one.
3. ## not your average contact question

hi all i have a fairly interesting contact problem i'm hoping some of you may have be able to help out with. I have a large set of interconnected line segments (3D) to which i am adding new segments to one by one. one end of each new line segment is attached to the end of another of the segments in the domain. Each new node has a position prescribed to it through other equations, which can't gaurantee that the line segment created won't intersect another in the domain. I am ok with a method for detecting contacts (subdivide the space, get possible contacts with this subdivided space, then find actual contacts), but am looking for the best way to resolve these. I could have a few contacts at the same time, am restricted to only moving one point of the line segment, and need to try and keep as close to the original orientation of the original segment as possible. I would like to do this in as few a passes as possible, and have been heading down the route of trying to take into account all contacts and near contacts before deciding how to move the segment. Obviously though this is quite tricky and any other ideas you may have would be most welcome! thanks for any ideas you can offer, mike
4. ## best search algorithm

i'll look into that then, thanks!
5. ## best search algorithm

hi all I'm afraid I don't know much about search algorithms and would like a steer in the right direction if you please. I have a system with between 50-100k nodes, distributed pretty much uniformly, some of them joined together as continuous line segments. I'm looking at ways of optimising a scheme to resolve contact between any of the line segments that overlap, and was thinking a good place to start would be the search algorithm that looks for near neighbours. The nodes all lie along a path that I have described parametrically, so I am umming and a-ing about whether to try and use that to my advantage in some way, otherwise just a good fast way of sorting these with a tree would be appreciated. currently i think an ab tree is being used, but I don't even know what that is!-can't find zip with google - possibly just a standard binary tree? your thoughts?
6. ## reduce number of points on curve

thanks, i had actually spotted the clod paper but thought it a little complex for this particular application. spec has changed anyway, so it looks like i'll have to be making my changes to the number of points as the curve is 'drawn' - think i'll end up using derivatives calculated for each point to decide if it's valid. thanks for the info, glad to know that at least dot producting was reasonable. least squares is no good but thanks for the suggestion =)
7. ## reduce number of points on curve

Hi, I'm currently looking at a pretty simple problem: taking a curved line segment and reducing the number of points on that line segement based on the curvature. Ie high curvature->more points, less curvature less points. The blindingly obvious way of doing it is to use the dotproduct between two points (or rather the sum over three) and join get rid of the middle point if the sum is below a threshold. Is there a clever way of doing this? I know the curve parameters (a few different sine, sin^2 curves summed) so I could i suppose differentiate exactly.. any thoughts? Most stuff out on the net seems to be about point cloud reduction that I can find, anyway. Doesn't need to be *that* clever! Cheers, MH