67 lines
2 KiB
ObjectPascal
67 lines
2 KiB
ObjectPascal
program combinedcalculation2;
|
||
|
||
uses SysUtils, Math; // Для работы с math
|
||
|
||
var
|
||
length, width, angleDegrees, angleRadians, centerX, centerY, halfLength, halfWidth, leftBottomX, leftBottomY: real;
|
||
x0, y0, d, a, b, c, discriminant, t1, t2, theta1, theta2: real;
|
||
|
||
begin
|
||
length := 40.7;
|
||
width := 5.6;
|
||
angleDegrees := 15;
|
||
angleRadians := ((angleDegrees+90)) * Pi / 180;
|
||
|
||
centerX := 0;
|
||
centerY := 0;
|
||
|
||
halfLength := length / 2;
|
||
halfWidth := width / 2;
|
||
|
||
centerX := centerX - halfLength * Cos(angleRadians);
|
||
centerY := centerY - halfLength * Sin(angleRadians);
|
||
|
||
leftBottomX := centerX - halfLength * Cos(angleRadians) - halfWidth * Sin(angleRadians);
|
||
leftBottomY := centerY - halfLength * Sin(angleRadians) + halfWidth * Cos(angleRadians);
|
||
//leftBottomY := centerY - halfWidth * Sin(angleRadians) - halfLength * Cos(angleRadians);
|
||
|
||
writeln('Координаты левого нижнего угла: (', leftBottomX:0:6, ', ', leftBottomY:0:6, ')');
|
||
|
||
// Исходные данные
|
||
x0 := leftBottomY;
|
||
y0 := leftBottomX;
|
||
d := 0.825;
|
||
|
||
// Вычисление коэффициентов квадратного уравнения
|
||
a := x0 * x0 - d * d;
|
||
b := 2 * x0 * y0;
|
||
c := y0 * y0 - d * d;
|
||
|
||
// Вычисление дискриминанта
|
||
discriminant := b * b - 4 * a * c;
|
||
|
||
// Проверка наличия решений
|
||
if discriminant >= 0 then
|
||
begin
|
||
// Вычисление корней квадратного уравнения
|
||
t1 := (-b + sqrt(discriminant)) / (2 * a);
|
||
t2 := (-b - sqrt(discriminant)) / (2 * a);
|
||
|
||
// Вычисление углов в градусах
|
||
theta1 := ArcTan(t1) * 180 / Pi;
|
||
theta2 := ArcTan(t2) * 180 / Pi;
|
||
|
||
// Вывод результатов
|
||
writeln('Угол 1: ', theta1:0:10);
|
||
writeln('Угол 2: ', theta2:0:10);
|
||
end
|
||
else
|
||
begin
|
||
writeln('Дискриминант отрицательный, нет вещественных решений.');
|
||
end;
|
||
|
||
readln; // Чтобы консоль не закрылась сразу
|
||
|
||
|
||
end.
|
||
|