Найти координаты точек - C#
Формулировка задачи:
Добрый вечер.
Даны 3 точки(A B C) и 1 переменная(n)-отклонение.
Найти координаты c1 c2(находятся на перпендикуляре и расстоянии n от С).
Решение задачи: «Найти координаты точек»
textual
Листинг программы
using System;
using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsApplication278
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var A = new PointF(1, 1);
var B = new PointF(10, 10);
var C = new PointF(5, 0);
var n = 2f;
//V = B - A
var V = new PointF(B.X - A.X, B.Y - A.Y);
//перпендикуляр к v
var N = new PointF(V.Y, -V.X);
//нормаль
N = N.Mul(1f/N.Length());
//умножаем на n
N = N.Mul(n);
//
var C1 = new PointF(C.X + N.X, C.Y + N.Y);
var C2 = new PointF(C.X - N.X, C.Y - N.Y);
//
Console.WriteLine(C1);
Console.WriteLine(C2);
}
}
static class PointExtensions
{
public static PointF Mul(this PointF p, float k)
{
return new PointF(p.X * k, p.Y * k);
}
public static float Length(this PointF p)
{
return (float)Math.Sqrt(p.X * p.X + p.Y * p.Y);
}
}
}