Написать алгоритма отражения от стен, если объект элипс, рисуется относительно левого верхнего угла, описанного вокруг него квадрата. Нужно написать алгоритм на c++
Любой из нас с самого детства знает, что красный сигнал светофора запрещает движение, зелёный сигнал разрешает движение, а жёлтый - предупреждает о смене сигналов.
Но далеко не каждый знает, как работает современный «продвинутый» транспортный светофор.
К красному сигналу добавился жёлтый. Через пару секунд они оба одновременно погаснут, и включится зелёный.
Красный с жёлтым погасли, включился зелёный, и можно двигаться во всех направлениях (если, конечно, знаками или разметкой не дано иных указаний).
Но не торопитесь начинать движение. Сколько бед и трагедий видел автор этих строк, когда соседи по дороге слепо ориентировались на зелёный сигнал. Сначала нужно убедиться, остановились ли те, кому сейчас загорелся красный. Кто-то может просто не успеть остановиться, а кто-то ну очень спешит и готов проскочить перекрёсток, пусть даже, рискуя жизнью (ладно бы только своей, но ведь и чужой тоже).
Любой из нас с самого детства знает, что красный сигнал светофора запрещает движение, зелёный сигнал разрешает движение, а жёлтый - предупреждает о смене сигналов.
Но далеко не каждый знает, как работает современный «продвинутый» транспортный светофор.
К красному сигналу добавился жёлтый. Через пару секунд они оба одновременно погаснут, и включится зелёный.
Красный с жёлтым погасли, включился зелёный, и можно двигаться во всех направлениях (если, конечно, знаками или разметкой не дано иных указаний).
Но не торопитесь начинать движение. Сколько бед и трагедий видел автор этих строк, когда соседи по дороге слепо ориентировались на зелёный сигнал. Сначала нужно убедиться, остановились ли те, кому сейчас загорелся красный. Кто-то может просто не успеть остановиться, а кто-то ну очень спешит и готов проскочить перекрёсток, пусть даже, рискуя жизнью (ладно бы только своей, но ведь и чужой тоже).
using System;
class Program
{
static void Main()
{
int x1 = 2, y1 = 1;
int x2 = 6, y2 = 5;
int x3 = 10, y3 = 1;
var a = Distance(x2, y2, x3, y3);
var b = Distance(x1, y1, x3, y3);
var c = Distance(x2, y2, x1, y1);
Console.WriteLine("S = {0}", Square(a, b, c));
Console.ReadKey();
}
//растояние между точками
static double Distance(int x1, int y1, int x2, int y2)
{
return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
//формула герона
static double Square(double a, double b, double c)
{
var p = (a + b + c) / 2;
return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
}
// теорема косинусов
static double Angle(double a, double b, double c)
{
return Math.Acos((b * b + c * c - a * a) / (2 * b * c));
}
static bool IsAcuteAngel(double alpha)
{
return alpha < Math.PI / 2;
}
}