1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-23 16:25:19 +03:00
This commit is contained in:
Andi Kanzler 2023-11-13 14:02:45 -03:00
parent f443051ffa
commit 412961c5b4
11 changed files with 776 additions and 179 deletions

View file

@ -1,6 +1,8 @@
/*global $*/
'use strict';
const { ColorManagement } = require("three");
function checkChromeRuntimeError() {
if (chrome.runtime.lastError) {
console.error(
@ -65,3 +67,51 @@ function scaleRangeInt(x, srcMin, srcMax, destMin, destMax) {
let b = srcMax - srcMin;
return Math.round((a / b) + destMin);
}
function distanceOnLine(start, end, distance)
{
var vx = end[0] - start[0];
var vy = end[1] - start[1];
var mag = Math.sqrt(vx * vx + vy * vy);
vx /= mag;
vy /= mag;
var px = start[0] + vx * (mag + distance);
var py = start[1] + vy * (mag + distance);
return [px, py];
}
function wrap_360(angle)
{
if (angle >= 360)
angle -= 360;
if (angle < 0)
angle += 360;
return angle;
}
function rad2Deg(rad)
{
return rad * (180 / Math.PI);
}
function deg2Rad(deg)
{
return deg * (Math.PI / 180);
}
function calculate_new_cooridatnes(coord, bearing, distance)
{
var lat = deg2Rad(coord.lat);
var lon = deg2Rad(coord.lon);
bearing = deg2Rad(bearing);
var delta = distance / 637100000; // Earth radius in cm
var latNew = Math.asin(Math.sin(lat) * Math.cos(delta) + Math.cos(lat) * Math.sin(delta) * Math.cos(bearing));
var lonNew = lon + Math.atan2(Math.sin(bearing) * Math.sin(delta) * Math.cos(lat), Math.cos(delta) - Math.sin(lat) * Math.sin(lat));
return {
lat: rad2Deg(latNew),
lon: rad2Deg(lonNew),
}
}