First commit
This commit is contained in:
commit
2b0a3a87c7
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
bin
|
||||||
|
obj
|
BIN
DecimalEx.dll
Normal file
BIN
DecimalEx.dll
Normal file
Binary file not shown.
22
ISS.c#.correctorj1.csproj
Normal file
22
ISS.c#.correctorj1.csproj
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<RootNamespace>ISS.c_.correctorj1</RootNamespace>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="RealCoordinatesCalculation.dll">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="RealCoordinatesCalculation">
|
||||||
|
<HintPath>RealCoordinatesCalculation.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
25
ISS.c#.correctorj1.sln
Normal file
25
ISS.c#.correctorj1.sln
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.5.002.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ISS.c#.correctorj1", "ISS.c#.correctorj1.csproj", "{D62B6028-A86D-4515-B93C-299D46A4F2BA}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{D62B6028-A86D-4515-B93C-299D46A4F2BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D62B6028-A86D-4515-B93C-299D46A4F2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D62B6028-A86D-4515-B93C-299D46A4F2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D62B6028-A86D-4515-B93C-299D46A4F2BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {FA648F5C-E2D8-4219-A883-715C819FC2A5}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
119
Program.cs
Normal file
119
Program.cs
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Numerics;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Xml.XPath;
|
||||||
|
using RealCoordinatesCalculation;
|
||||||
|
using RealCoordinatesCalculation.Models;
|
||||||
|
|
||||||
|
// | TODO |
|
||||||
|
// =================
|
||||||
|
// Подгрузка M1, M2
|
||||||
|
// Подгрузка PA.TA.HA.TC.PC
|
||||||
|
|
||||||
|
// ДИАПАЗОНЫ ВЫЧИСЛЕНИЙ
|
||||||
|
const double NG_PREDEL_LOW = 1.494452;
|
||||||
|
const double NG_PREDEL_HIGHT = 1.506247;
|
||||||
|
const double BETA_PREDEL_LOW = -15;
|
||||||
|
const double BETA_PREDEL_HIGHT = 15;
|
||||||
|
|
||||||
|
// ПРЕДОПРЕДЕЛЕННЫЕ КОНСТАНТЫ ВЫЧИСЛЕНИЙ
|
||||||
|
const double LAMBDA = 1.550;
|
||||||
|
const double ALPHA = 0.001383;
|
||||||
|
const double DGM = 60.00;
|
||||||
|
|
||||||
|
// КОЛИЧЕСТВО ЭКСПЕРИМЕНТОВ
|
||||||
|
const int COUNT_EXPERIMENTS = 6;
|
||||||
|
|
||||||
|
|
||||||
|
//DELETE AFTER PARSER IS GOING TO UP
|
||||||
|
var XYZ = new Vector3D(5944.787, -1758.92, 3885.021);
|
||||||
|
var M1 = new Vector3D(3472.706, 2543.101, 952.0311);
|
||||||
|
var M2 = new Vector3D(-1847.56, 2517.044, -2771.21);
|
||||||
|
const double PA = 743.056;
|
||||||
|
const double TA = 27.106;
|
||||||
|
const double HA = 46.676;
|
||||||
|
const double PC = 743.12;
|
||||||
|
const double TC = 26.6;
|
||||||
|
|
||||||
|
Console.WriteLine("[*] Start process of calculation");
|
||||||
|
|
||||||
|
Console.WriteLine("[1] Layer 1 :: Correcting coordinate is ended");
|
||||||
|
|
||||||
|
Console.WriteLine("[2] Layer 2 :: Calculate Distance is resolved");
|
||||||
|
|
||||||
|
Console.WriteLine("[3] Layer 3 :: Calculate DELTA is ended");
|
||||||
|
|
||||||
|
StartCalc();
|
||||||
|
// Запуск процесса вычислений
|
||||||
|
void StartCalc() {
|
||||||
|
var STEP_NG = (NG_PREDEL_HIGHT - NG_PREDEL_LOW) / 30;
|
||||||
|
var STEP_BETA = (NG_PREDEL_HIGHT - NG_PREDEL_LOW) / 30;
|
||||||
|
|
||||||
|
var CorrectedCoords = new List<Vector3D>();
|
||||||
|
|
||||||
|
for (int i = 0; i < COUNT_EXPERIMENTS; i++) {
|
||||||
|
var res = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW + (STEP_NG * i), (int)(BETA_PREDEL_LOW + (STEP_BETA * i)), PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
System.Console.WriteLine($"[LOG] ITERATION {i} in {COUNT_EXPERIMENTS} :: POINT {"J1.1"} :: " + res);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// === Уточняем координаты точек
|
||||||
|
var J1_1 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J1_2 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J1_3 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J2_1 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J2_2 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J2_3 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J3_1 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J3_2 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
var J3_3 = RunDivergenceCorrectForCoordinate(NG_PREDEL_LOW, (int)BETA_PREDEL_LOW, PA, TA, HA, PC, TC, M1, M2, XYZ);
|
||||||
|
|
||||||
|
// === Считаем искомые расстояния
|
||||||
|
var J1_12 = CalculateDistance(J1_1, J1_2);
|
||||||
|
var J1_23 = CalculateDistance(J1_2, J1_3);
|
||||||
|
var J1_13 = CalculateDistance(J1_1, J1_3);
|
||||||
|
|
||||||
|
|
||||||
|
var J2_12 = CalculateDistance(J2_1, J2_2);
|
||||||
|
var J2_23 = CalculateDistance(J2_2, J2_3);
|
||||||
|
var J2_13 = CalculateDistance(J2_1, J2_3);
|
||||||
|
|
||||||
|
var J3_12 = CalculateDistance(J3_1, J3_2);
|
||||||
|
var J3_23 = CalculateDistance(J3_2, J3_3);
|
||||||
|
var J3_13 = CalculateDistance(J3_1, J3_3);
|
||||||
|
// === Оцениваем отклонения найденных значений от истинного
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Корректировка координат для 1 вектора
|
||||||
|
Vector3D RunDivergenceCorrectForCoordinate(double NG, int BETA, double PA, double TA, double HA, double PC, double TC, Vector3D M1, Vector3D M2, Vector3D XYZ) {
|
||||||
|
var option = new CalculationSettings
|
||||||
|
{
|
||||||
|
NA = null,
|
||||||
|
NC = null,
|
||||||
|
NG = (decimal)NG,
|
||||||
|
Alpha = (decimal)ALPHA,
|
||||||
|
Dgm = (decimal)DGM,
|
||||||
|
PA = (decimal)PA,
|
||||||
|
TA = (decimal)TA,
|
||||||
|
HA = (decimal)HA,
|
||||||
|
Lambda = (decimal)LAMBDA,
|
||||||
|
Beta = BETA,
|
||||||
|
TC = (decimal)TC,
|
||||||
|
PC = (decimal)PC,
|
||||||
|
};
|
||||||
|
var calcLogger = new CalculateVectorCore(option);
|
||||||
|
var CALCULATED = calcLogger.CalculateData(
|
||||||
|
XYZ,
|
||||||
|
M1,
|
||||||
|
M2
|
||||||
|
);
|
||||||
|
return CALCULATED;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Вычисление длинны вектора
|
||||||
|
double CalculateDistance(Vector3D JI_1, Vector3D JI_2) {
|
||||||
|
return (double)Vector3D.Length(JI_1, JI_2);
|
||||||
|
}
|
BIN
RealCoordinatesCalculation.dll
Normal file
BIN
RealCoordinatesCalculation.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user