All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Shapes
Nine Pointed Sphere (Posted on 2021-06-03) Difficulty: 3 of 5
Show how to distribute nine points around the surface of a sphere in such a way that each point is equidistant from its four nearest neighbors.

No Solution Yet Submitted by Danish Ahmed Khan    
Rating: 3.0000 (2 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
re: Using plane trig in 3 dimensions -- discrepancy resolved | Comment 10 of 12 |
(In reply to Using plane trig in 3 dimensions by Charlie)

I figured out what was the cause of the discrepancy between the spherical and plane-trig methods I used: In the plane trig method I assumed that the foot of the perpendicular line from the point on the smaller circle, at the equatorial plane, lay at a right angle vertex from the center of the sphere to that point, to the given point on the equator. That's not true; The point on the equator is of course 1 unit (the radius of the sphere) from the center of the sphere; the foot of that perpendicular is cos(lat) from the center of the sphere, and those two sides form a 60° angle at the center of the sphere. That's the basis on which the distance to the foot of the perpendicular should be made as it is in the line below:

distToFoot=sqrt(1+(cosd(lat))^2-2*(cosd(lat))*cosd(60));

The program computes both the spherical method and the plane trig method, which now agree:

clc, clearvars

for lat=48.18968:.0000001:48.18969
   vertPost=sind(lat);
   distToFoot=sqrt(1+(cosd(lat))^2-2*(cosd(lat))*cosd(60));
   chord1=sqrt(vertPost^2+distToFoot^2);
   arc1=2*asind(chord1/2);
   arc1s=acosd(cosd(60)*cosd(lat));
   smallCircleRadius=cosd(lat);
   chord2=sqrt(2*smallCircleRadius^2 - 2*smallCircleRadius^2*cosd(120)) ;
   arc2=2*asind(chord2/2);
   arc2s=acosd(sind(lat)^2+cosd(lat)^2*cosd(120));
 
   fprintf('%10.7f %8.6f %8.6f   %8.6f %8.6f %8.6f\n',lat,arc1,arc2, arc1s,arc2s,arc1-arc2)
end

Only the two lines

  arc1s=acosd(cosd(60)*cosd(lat));
  arc2s=acosd(sind(lat)^2+cosd(lat)^2*cosd(120));
  
constitute the spherical method, the rest are the plane-trig method.

The range for latitude shown was a homing in on the solution after larger ranges were tried with wider differences.

The middle of the final result shows:

            arc between pts          same for                   diff. between
latitude   on equator|between        spherical                 equatorial distance
of small             |eq. and        calculation               and eq-to-small-circle distance
 circle              small circle
                                    eq     eq-to-small-circle
48.1896848 70.528779 70.528780   70.528779 70.528780             -0.000001
48.1896849 70.528779 70.528780   70.528779 70.528780             -0.000000
48.1896850 70.528779 70.528780   70.528779 70.528780             -0.000000
48.1896851 70.528779 70.528779   70.528779 70.528779             -0.000000
48.1896852 70.528779 70.528779   70.528779 70.528779              0.000000
48.1896853 70.528779 70.528779   70.528779 70.528779              0.000000
48.1896854 70.528779 70.528779   70.528779 70.528779              0.000001

The latitude for the small circle should be 48.1896851° and the arc distance between points is 70.528779°.

  Posted by Charlie on 2021-06-06 12:58:23
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (0)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information