How to create a line around the earth map and then getting the location of a specific point on it?

3 views (last 30 days)
How to create a line on the earth map starting from any given point. That line should complete the rotation at any given angle through the origin point of the earth, and then shows the location of any point on that line.
For example, let's see the image attached. The red point is our starting user-defined point. We have three lines (orange with angle alpha, green with angle beta, and pink with angle gamma). How to find the location of the center or middle point of each line?
Thank you so much

Accepted Answer

darova
darova on 4 May 2020
Here is a start:
  • draw sphere, draw circle. Pick the point you want
  • Now you need axis of rotation to rotate your circle - use cross
  • figure out the angle of rotation
p = p/norm(p); % 'p' is your point (vector of size 1x3)
v = cross(p,[0 0 1])); % axis of rotation
h = plot(...); % your circle
rotate(h,v,a,[0 0 0]) % 'a' is angle at which circle should be rotated (degrees)
  • use copyobj to copy rotated circle and rotate it again by 'point' axis
h1 = copyobj(h);
rotate(h1,p,30,[0 0 0]);
set(h1,'color','r') % change color
see more: rotate, cross
  2 Comments
Sitra
Sitra on 5 May 2020
Great code .. Thank you so much for sharing it here
The problem is: earth is not an ideal sphere, which means that the middle point of each line will not intersect with others!
There are some special commands to deal with "world map", but I struggling to draw lines like equator around earth

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!