Вычислить расстояние между двумя точками - C# (206793)
Формулировка задачи:
Две точки заданы на плоскости своими координатами, которые могут быть как декартовыми, так и полярными. Требуется вычислить расстояние между этими двумя точками.
Решение задачи: «Вычислить расстояние между двумя точками»
textual
Листинг программы
using System;
public class Test
{
public class Point {
public double x,y; // либо две декартовые координаты, либо расстояние и угол
public bool cart; // true если в декартовых, иначе false
public Point(double x, double y, bool cart) {
this.x=x; this.y=y; this.cart=cart;
}
/* переводим в декартовые координаты */
public void toCartesian() {
if(cart) return;
double xx = x*Math.Cos(y);
double yy = x*Math.Sin(y);
cart = true;
x = xx;
y = yy;
}
public static double dist(Point p, Point q) {
p.toCartesian();
q.toCartesian();
return Math.Sqrt((p.x-q.x)*(p.x-q.x) + (p.y-q.y)*(p.y-q.y));
}
}
public static void Main()
{
Console.WriteLine(Point.dist(new Point(0,0,true), new Point(0,1,true)));
}
}