| | |
| | | const RADIUS = 6; |
| | | const BOARD_SIZE = 14; |
| | | |
| | | const toXYZ = (longitude, latitude) => { |
| | | const lon = (longitude * Math.PI) / 180; |
| | | const lat = (latitude * Math.PI) / 180; |
| | |
| | | } |
| | | |
| | | |
| | | // board commands |
| | | const RADIUS = 6; |
| | | const BOARD_SIZE = 14; |
| | | |
| | | const board = JXG.JSXGraph.initBoard( |
| | | 'box', { |
| | | boundingbox: [-BOARD_SIZE, BOARD_SIZE, BOARD_SIZE, -BOARD_SIZE], |
| | |
| | | }); |
| | | const bound = [-10, 10]; |
| | | const view = board.create('view3d', |
| | | [[-8, -8], [15, 15], |
| | | [[-10, -10], [19, 19], |
| | | [bound, bound, bound]], |
| | | { |
| | | axesPosition: 'none', |
| | |
| | | const meridianNormalVector = normalVector(TANGENT_COORDINATE, NORTH_POLE); |
| | | const meridianPlan = view.create('circle3d', [origin, meridianNormalVector, RADIUS]); |
| | | |
| | | const projectionLine = view.create('line3d', [targetPoint, toXYZ(...TANGENT_COORDINATE), [-Infinity, Infinity] ]); |
| | | const projectionLine = view.create('line3d', [targetPoint, toXYZ(...TANGENT_COORDINATE), [0, Infinity] ]); |
| | | const ot = view.create('line3d', [origin, tangentPoint]) |