Форум: "Прочее";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
ВнизКак вычислить arccos через arctan? Найти похожие ветки
← →
Pweq (2007-10-24 17:10) [0]Подскажите, пожалуйста!
← →
Сергей М. © (2007-10-24 17:11) [1]Студент ?)
← →
palva © (2007-10-24 17:17) [2]
{$APPTYPE CONSOLE}
uses Math;
var d: Double;
begin
d := 0.2;
writeln(arctan(sqrt(1-sqr(d))/d)); // 1.36943840600457E+0000
// Проверяем:
writeln(arccos(d)); // 1.36943840600457E+0000
// Совпадает
end.
← →
Pweq (2007-10-24 17:48) [3]А если d = 0?
← →
@!!ex © (2007-10-24 17:54) [4]> [3] Pweq (24.10.07 17:48)
Сам не догадаешься?
← →
Dmitry S © (2007-10-24 17:54) [5]А когда косинус равен нулю?:)
← →
palva © (2007-10-24 17:56) [6]Тогда исправим код.
{$APPTYPE CONSOLE}
uses Math;
var d: Double;
begin
d := 0.2;
writeln(arctan2(sqrt(1-sqr(d)), d)); // 1.36943840600457E+0000
d := 0.0;
writeln(arctan2(sqrt(1-sqr(d)), d)); // 1.57079632679490E+0000
end.
← →
tesseract © (2007-10-24 17:57) [7]
> А если d = 0?
pi/2
← →
Jeer © (2007-10-24 18:03) [8]<
> tesseract © (24.10.07 17:57) [7]
А если военное время и PI равно бесконечности ?
У студента и так уже заворот мозгов.
← →
oldman © (2007-10-24 18:22) [9]
> Dmitry S © (24.10.07 17:54) [5]
> А когда косинус равен нулю?
В военное время при отсутствии прапорщиков...
← →
Jimmy (2007-10-24 19:31) [10]Кстати, недавно столкнулся с тем, что ArcCos из модуля Math при аргументе чуть большем 1 выдает какое-то громадное число. Пришлось написать свой:
Function ArcCosMy(x:Real):Real;
begin
if x>=1 then x:=1;
if x<=-1 then x:=-1;
Result:=ArcCos(x);
end;
Будуте смеятнся надо мной или над ArcCos?
← →
@!!ex © (2007-10-24 19:35) [11]> [10] Jimmy (24.10.07 19:31)
Над вами, ибо Cos не может принимать значения меньше -1 и больше 1, соответственно и ArcCos обрабатывать такие значения не должен.
← →
Jimmy (2007-10-24 19:41) [12]Ей-Богу, не вру!
← →
Petr V.Abramov (2007-10-24 21:56) [13]написать ф-цию arctan2arccos
как - в учебнике
← →
@!!ex © (2007-10-25 21:32) [14]Кстати, вот в целях общего развития сегодня написал. Работает на 30% быстрее стандартной реализации.
function FastArcCos(const X: Extended): Extended;
asm
fld X
fld X
fmul
fld1
fsubr
fsqrt
fld X
fpatan
fwait
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.055 c