Как сделать сдвиг вправо на координатной плоскости - C#
Формулировка задачи:
Здравствуйте еще раз, дней 5 назад вы помогли описать класс треугольник (программа работает) пасибо большое, но мне она не очень понравилось преподу так вообще. Я попытался сделать сам посмотрите что получилось (вы ток продумайте что совсем нечего незнаю на Дальней Востоке с программирование сложновато, да ещенам ввели его 2 месяца назад этот язык шарм, учимся на ваших примеров) ну так вот собственно перед к тому что я сделал с учебником геометрии за 10 класс:
вот собственно и оно мое детище за 2 дня)
а теперь как сделать сдвиг вправо на координатной плоскости? есть некоторые задумки, черновик вот собственно и он:
берем треугольник который был и смещаем его вправо на координантной плоскости то есть был треугольник Ax, Bx, Cx а нужно получить Ax1, Ax2, Ax3 игрики остаются теже(у1, у2, у3)
я шас попробую наглядно изобразить(попытаюсь):
У(ось У)
1
1 в в1
1
1
1 а с а1 с1
1
1111111111111111111111111--Х(ось Х) (тут немного все съехала когда отправляешь)((((
то есть что я тут хотел сказать координаты "х" смещают, а координаты "у" остаются так как мы двигаем вправо...
тут небольшой набросочек:
или еще один
Ах+(дельта)Х=Ах1
Вх+(дельта)Х=Вх1
Сх+(дельта)Х=Сх1
подскажите как его сделать(С# Sharp).....
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("_-==//************************************\\==-_");
Console.WriteLine("-------------Нахождение треугольника------------");
Console.WriteLine("_-==//************************************\\==-_");
Console.WriteLine(" ");
Console.WriteLine("Введи координаты точки A");
Console.Write("Ax = ");
double Ax = Double.Parse(Console.ReadLine());
Console.Write("Ay = ");
double Ay = Double.Parse(Console.ReadLine());
Console.WriteLine("Введи координаты точки B");
Console.Write("Bx = ");
double Bx = Double.Parse(Console.ReadLine());
Console.Write("By = ");
double By = Double.Parse(Console.ReadLine());
Console.WriteLine("Введи координаты точки С");
Console.Write("Сx = ");
double Cx = Double.Parse(Console.ReadLine());
Console.Write("Сy = ");
double Cy = Double.Parse(Console.ReadLine());
double ABx = Ax - Bx;
double ABy = Ay - By;
double BCx = Cx - Bx;
double BCy = Cy - By;
double ACx = Ax - Cx;
double ACy = Ay - Cy;
double dlinAB = Math.Sqrt(ABx * ABx + ABy * ABy);
double dlinBC = Math.Sqrt(BCx * BCx + BCy * BCy);
double dlinAC = Math.Sqrt(ACx * ACx + ACy * ACy);
Console.WriteLine("Cтороны треугольника равны: AB = " + dlinAB + ", BC = " + dlinBC + ", AC = " + dlinAC);
double P = dlinAB + dlinAC + dlinBC;
double kBC = (Cy - By) / (Cx - Bx);
double bBC = Cy - kBC * Cx;
double kCR = (Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAC) * (P / 2 - dlinBC)) / (dlinAC * dlinBC)))) + kBC) / (1 - Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAC) * (P / 2 - dlinBC)) / (dlinAC * dlinBC)))) * kBC);
double bCR = Cy - kCR * Cx;
double kAC = (Cy - Ay) / (Cx - Ax);
double kAD = (Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAB) * (P / 2 - dlinAC)) / (dlinAB * dlinAC)))) + kAC) / (1 - Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAB) * (P / 2 - dlinAC)) / (dlinAB * dlinAC)))) * kAC);
double bAD = Ay - kAD * Ax;
double x1 = (bAD - bCR) / (kCR - kAD);
double y1 = kAD * x1 + bAD;
Console.WriteLine(" Треугольник постороен по трем точкам!");
Console.WriteLine("Press any key....");
Console.ReadKey();
}
}
}public void sdvigThreengle (double Ax, double Bx, double Cx, double Ax1, double Bx1, double Cx1, double Ay, double By, double Cy)
{
Ax+ =Ax1. y1
Bx+ =Bx1. y2
Cx+ =Cx1. y3
Console.Write("смешенный треугольник");
GetLength();
}Решение задачи: «Как сделать сдвиг вправо на координатной плоскости»
textual
Листинг программы
class Program
{
static double Ax, Bx, Cx;
static double Ay, By, Cy;
// double Ax1, Bx1, Cx1;
static void Main(string[] args)
{
Console.WriteLine("_-==//************************************\\==-_");
Console.WriteLine("-------------Нахождение треугольника------------");
Console.WriteLine("_-==//************************************\\==-_");
Console.WriteLine(" ");
Console.WriteLine("Введи координаты точки A");
Console.Write("Ax = ");
Ax = Double.Parse(Console.ReadLine());
Console.Write("Ay = ");
Ay = Double.Parse(Console.ReadLine());
Console.WriteLine("Введи координаты точки B");
Console.Write("Bx = ");
Bx = Double.Parse(Console.ReadLine());
Console.Write("By = ");
By = Double.Parse(Console.ReadLine());
Console.WriteLine("Введи координаты точки С");
Console.Write("Сx = ");
Cx = Double.Parse(Console.ReadLine());
Console.Write("Сy = ");
Cy = Double.Parse(Console.ReadLine());
GetThreeAngle();// расчет показателей
sdvigThreeAngle(5.0);// сдвиг
Console.ReadKey();
}
public static void sdvigThreeAngle(double delta_x)
{
Ax += delta_x;
Bx += delta_x;
Cx += delta_x;
GetThreeAngle();
}
private static void GetThreeAngle()
{
double ABx = Ax - Bx;
double ABy = Ay - By;
double BCx = Cx - Bx;
double BCy = Cy - By;
double ACx = Ax - Cx;
double ACy = Ay - Cy;
double dlinAB = Math.Sqrt(ABx * ABx + ABy * ABy);
double dlinBC = Math.Sqrt(BCx * BCx + BCy * BCy);
double dlinAC = Math.Sqrt(ACx * ACx + ACy * ACy);
Console.WriteLine("Cтороны треугольника равны: AB = " + dlinAB + ", BC = " + dlinBC + ", AC = " + dlinAC);
double P = dlinAB + dlinAC + dlinBC;
double kBC = (Cy - By) / (Cx - Bx);
double bBC = Cy - kBC * Cx;
double kCR = (Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAC) * (P / 2 - dlinBC)) / (dlinAC * dlinBC)))) + kBC) / (1 - Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAC) * (P / 2 - dlinBC)) / (dlinAC * dlinBC)))) * kBC);
double bCR = Cy - kCR * Cx;
double kAC = (Cy - Ay) / (Cx - Ax);
double kAD = (Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAB) * (P / 2 - dlinAC)) / (dlinAB * dlinAC)))) + kAC) / (1 - Math.Tan(Math.Asin(Math.Sqrt(((P / 2 - dlinAB) * (P / 2 - dlinAC)) / (dlinAB * dlinAC)))) * kAC);
double bAD = Ay - kAD * Ax;
double x1 = (bAD - bCR) / (kCR - kAD);
double y1 = kAD * x1 + bAD;
Console.WriteLine(" Треугольник постороен по трем точкам!");
Console.WriteLine("Press any key....");
}
}