I'm looking for a solution to a seemingly simple mathematical problem. Please refer to the attached drawing to illustrate the following description.
- A sphere with radius R = 1
- Two circles on the surface of this sphere, described by two arbitrary vectors A and B as well as two angles alphaA and alphaB (0..PI/2)
To calculate for the following seven cases:
1. Circles lie side by side and do not touch or intersect: - nothing -
2. Circles touch outside in one point: vector coords for this point C
3. Circles intersect each other: vector coords of the two points C1 and C2
4. Circles touch inside in one point: vector coords of this point C
5. Circles lie inside each other and do not touch or intersect: - nothing -
6. Circles are identical, with A = B and alphaA = alphaB: - nothing -
7. Circles are identical, with A = -B and alphaA = alphaB = PI/2: - nothing -
The drawing does show case #3.
In addition to a formal mathematical solution, I'm also looking for its implementation. This implementation should be numerically stable and in form of a function which accepts A, B, alphaA and alphaB as parameters and returns the case number as well as either zero, one or two points of intersection. Delphi would be prefered as programming language, but any similar will do (C, Java, VB etc.).
- This is not home or course work. It's just a puzzle piece I need for a larger software project. I already posted this problem on various math help user boards, but nobody there seems to be able to point to a reasonably simple solution.
- I need just the bare-bone function, as stated in the project description. No gui of any kind is required.
- I already have a "solution" which is rather complex and computational expensive and does so not fit the apparent simplicity of the problem. There just has to be a better solution.
To give a better understanding of the context in which this function will be used:
- Image processing software, that computes certain information by analyzing source images
- Function has to be executed 256 times for every pixel in 5000x4000px source files (approx. 5,000,000,000 times per image) with no room for optimization.
- To achieve reasonable run times, the implementation has to be quite fast. My current implementation takes about 5s for 10,000,000 runs (2010 MacPro). Obviously, I'm looking for an implementation that is faster than that.
Hi, i have a solution for the intersecting circles which uses only 12 arithmetic and 9 vectorial operations to get the points. I can give you a Delphi solution.
15 freelance font une offre moyenne de $77 pour ce travail
You have presented an interesting problem - I like the drawing ! I have a Mathematics degree and stacks of experience programming in C/C++/C# so I am confident I can do this. Do you want graphics output - or just a con Plus
Hi, I am a graduating student in International Institute of Information Technology, Hyderabad in India. I participate in many coding competitions. I did so many problems in c & c++. I can do that code in c,c++ or a Plus
Dear, I'm expert in Math and liked this job. I'd already solved the first 3 items. As I'm in a Bussiness trip I don't have access to Delphi (I've it in my personal computer), but I can send you it implemented in Plus
i am a mathematician and having more than 8 years experience in the field of teaching you may contact me thanks
On a 1.5 Ghz single core laptop, I am getting 5 seconds for 10,000,000 randomly generated pairs of circles and 55 seconds for 100,000,000. I assume it would run faster on your computer. The function is very simple, not Plus