|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите с матиматикой (вроде тригонометрия)
Люди, помогите троешнику получить угол (в градусах) по заданым координатам X Y от нулевой точки. Помогите пожалуйста, нужно в разработке некой онлайновой игры (обезательно раскажу когда будет альфа версия).
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#2
|
||||
|
||||
Совсем немного гугла и находим требуемое математика
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
||||
|
||||
Цитата:
Вот мне училка по мату тоже самое написала, но у меня чото неработает, вот моя функция, отредактируйте пожалуйста: Код:
function GetAngleByXY(x,y,x2,y2: Integer): Integer; var ang: Extended; begin ang := 0; ang := x*x2+y*y2; ang := ang/(sqrt(sqr(x)+sqr(y))*sqrt(sqr(x2)+sqr(y2))); ang := cos(ang); Result := -round(ang); end; TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#4
|
||||
|
||||
Это не угол, а косинус угла между двумя векторами на плоскости. А в угол его уже ручками, ручками. А ты от косинуса снова берешь косинус
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#5
|
||||
|
||||
Я всё равно не понимаю, RadToDeg? ArcCos? Или ещё что-то? Напишите мне пожалуйста саму функцию, я отстану
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |
#6
|
|||
|
|||
Код:
implementation uses Math; {$R *.dfm} const x = 100.0; y = 100.0; procedure TForm1.FormCreate(Sender: TObject); begin Label1.Caption:= Format('%.0f°', [RadToDeg(ArcTan2(y,x))]); end; |
#7
|
||||
|
||||
Спасибо AlexSku!!! Вы не представляете как вы помогли!
TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |