Смотрите, где парабола и гипербола пересекаются в C#
В этом примере показано, как пересекаться парабола и гипербола. Предыдущий пример из четырех частей
, , и здесь объясняет, как найти точки пересечений между двумя коническими сечениями. Хотя должности сосредоточены на поиске точек пересечений между двумя эллипсами, их уравнения и методы, которые они обсуждают, работают для любого конического сечения.
В этом примере используются методы, продемонстрированные в предыдущем примере, чтобы найти точки пересечений между параболой и гиперболой. Этот пример похож на предыдущий, поэтому см. Их для получения дополнительной информации. Большая разница в этом примере заключается в том, что вы не можете щелкнуть и перетащить, чтобы выбрать эллипсы. Вместо этого обработчик события Load программы использует следующий код для инициализации переменных A1, B1, C1, D1, E1 и F1 для определения параболы и A2, B2, C2, D2, E2 и F2 для определения гиперболы.
private void Form1_Load(object sender, EventArgs e)
{
this.DoubleBuffered = true;
TangentX = 88;
// Парабола.
float dx = 50;
float dy = 100;
float sx = 10;
float sy = 1;
A1 = 0;
B1 = 0;
C1 = -sy * sy;
D1 = sx;
E1 = 2 * sy * dy;
F1 = -sx * dx - dy * dy;
// Гипербола.
dx = HyperbolaXmid;
dy = 70;
float a2 = 50;
float b2 = 150;
A2 = 1 / a2;
B2 = 0;
C2 = -1 / b2;
D2 = -2 * dx / a2;
E2 = 2 * dy / b2;
F2 = (dx * dx / a2) - (dy * dy / b2) - 1;
// Выполните вычисления.
PerformCalculations();
}
