private static void Main() // Главная точка в приложение { double radius; // радиус, от 100 до 10 000 double lat1, lat2, long1, long2; var reader = new FileInOut("INPUT"); // инициализация radius = Double.Parse(reader.Next().Replace('.', ',')); lat1 = Double.Parse(reader.Next().Replace('.', ',')); long1 = Double.Parse(reader.Next().Replace('.', ',')); lat2 = Double.Parse(reader.Next().Replace('.', ',')); long2 = Double.Parse(reader.Next().Replace('.', ',')); // перевод в радианы lat1 = ToRad(lat1); lat2 = ToRad(lat2); long1 = ToRad(long1); long2 = ToRad(long2); // синусы и косинусы для вычисления double x, y; // вычисления // формула гаверсинусов с модификацией для антиподов y = Math.Sqrt(Math.Pow(Math.Cos(lat2) * Math.Sin(long2 - long1), 2) + Math.Pow(Math.Cos(lat1) * Math.Sin(lat2) - Math.Sin(lat1) * Math.Cos(lat2) * Math.Cos(long2 - long1), 2)); x = Math.Sin(lat1) * Math.Sin(lat2) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Cos(long2 - long1); double ans = Math.Atan2(y, x) * radius; FileInOut.ToFile("OUTPUT", ans.ToString("#.##").Replace(',', '.')); }
// The very start of the program public IEnumerator InitApplication() { // basic initialization Screen.fullScreen = false; appState = AppState.Initializing; Application.targetFrameRate = targetFrameRate; userManager = GetComponentInChildren <UserManager>(); playbackManager = GetComponentInChildren <PlaybackManager>(); scenarioEvents = GetComponentInChildren <ScenarioEvents>(); networkManager = (NetworkManager)FindObjectOfType(typeof(NetworkManager)); osc = networkManager.osc; uiHandler = (UIHandler)FindObjectOfType(typeof(UIHandler)); canvasHandler = uiHandler.GetComponentInChildren <CanvasHandler>(); fileInOut = (FileInOut)FindObjectOfType(typeof(FileInOut)); soundHandler = (SoundHandler)FindObjectOfType(typeof(SoundHandler)); clock = (Clock)FindObjectOfType(typeof(Clock)); canvasHandler.ChangeCanvas("initCanvas"); //_userRole = UserRole.Server; // base setting int t = 0; switch (_userRole) { case UserRole.Server: { t = 0; break; } case UserRole.Player: { t = 1;; break; } case UserRole.Viewer: { t = 2;; break; } case UserRole.Tracker: { t = 3;; break; } case UserRole.Playback: { t = 4; break; } } // load jsons fileInOut.LoadPreferencesFiles(this); if (gameData.runInLocal == 1) { gameData.OSC_LocalIP = "127.0.0.1"; } else { gameData.OSC_LocalIP = CheckIp(); } // change UI's server IP field uiHandler.FillServerIPField(gameData.runInLocal, gameData.OSC_ServerIP); userManager.keepNamesVisibleForPlayers = (gameData.showNamesAboveHead == 1); // adjust user's parameters // build is always for non vr use if (!Application.isEditor) { useVRHeadset = false; StartCoroutine(EnableDisableVRMode(false)); } else { useVRHeadset = (gameData.useVr == 1); StartCoroutine(EnableDisableVRMode(false)); } if (useVRHeadset) { uiHandler.SetPlayerNetworkType(1); } else { uiHandler.SetPlayerNetworkType(t); } // do we print sent and received messages if (gameData.DebugMode == 1) { Instantiate(debugPrefab); debugMode = true; } yield return(new WaitForSeconds(1)); InvokeRepeating("TimedUpdate", 0.5f, 1f / targetFrameRate); }