using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace bitirme2
{
public partial class kchayford : Form
{
public kchayford()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
double wgs84f = 0.003367003, wgs84a = 6378388.00, wgs84b = 6356911.946;
double X, Y, Z;
X = Convert.ToDouble(textX.Text);
Y = Convert.ToDouble(textY.Text);
Z = Convert.ToDouble(textZ.Text);
double lambda;
lambda = (Math.Atan(Y / X));
if (X >= 0)
{
lambda = (Math.Atan(Y / X));
}
else if (X < 0 && Y >= 0)
{
lambda = ((Math.Atan(Y / X)) + 3.1415926535898);
}
else if (X < 0 && Y < 0)
{
lambda = ((Math.Atan(Y / X)) - 3.1415926535898);
}
double lambdaderece;
lambdaderece = (lambda * (180 / Math.PI));
double ke2;
ke2 = ((wgs84a * wgs84a) - (wgs84b * wgs84b)) / (wgs84a * wgs84a);
double P;
P = Math.Sqrt((X * X) + (Y * Y));
double R;
R = Math.Sqrt((P * P) + (Z * Z));
double teta;
teta = Math.Atan((Z * ((1 - wgs84f) * (ke2 * wgs84a / R))) / P);
double enlem;
enlem = Math.Atan((Z * (1 - wgs84f) + ke2 * wgs84a * (Math.Pow((Math.Sin(teta)), 3))) / ((1 - wgs84f) * (P - ke2 * wgs84a * (Math.Pow((Math.Cos(teta)), 3)))));
double fiderece;
fiderece = (enlem * (180 / Math.PI));
double yukseklik;
yukseklik = P * (Math.Cos(fiderece)) + Z * (Math.Sin(fiderece)) - wgs84a * (Math.Sqrt(1 - ke2 * (Math.Pow((Math.Sin(fiderece)), 2))));
lblBoylam.Text = lambdaderece.ToString();
lblEnlem.Text = fiderece.ToString();
lblYukseklik.Text = yukseklik.ToString();
}
}
}