Формулы виграх
пишу я на Дарк бейсике , но формулы беруться практически одни и теже ..
Я вот тут застрял , хочу написать игрушку в стиле "кримслонда" даже нашёл формулу на Дельфи Нахождение угла между осью OY и точкой
var hyp, kat1, kat2: single; begin hyp := sqrt(sqr(y1 - y2) + sqr(x1 - x2)); //посчитаем гипотенузу kat1 := x2 - x1; //посчитаем катет 1 kat2 := y1 - y2; //посчитаем катет 2 if kat2 >= 0 then begin if hyp <> 0 then result := radtodeg(arcsin(kat1 / hyp)) //чтобы избежать деления на 0 end else if hyp <> 0 then result := 180 - radtodeg(arcsin(kat1 / hyp)); //чтобы избежать деления на 0 if result > 90 then result := result - 90 else result := 270 + result; //Смещаем начало круга на 90 градусов (поскольку //не совпадает со стандатной системой) end; Вроди бы немного принцип понял , но переведя код в бейсик , работает как попало , что здесь может быть не так , помогите :''(( Вот мой код бейсика...... x=100 y=120 aaa: cls set cursor 8,8 : print "Угол ",res# mx=mousex() my=mousey() hyp# = sqrt(sqrt(my-y)+sqrt(mx-x)) kat1# = x-mx kat2# = my-y if kat2# >= 0 then if hyp# <> 0 then res# =(asin(kat1#/hyp#))*180/3.14: goto bbb: if hyp# <> 0 then res# = 180 - (asin(kat1#/hyp#))*180/3.14 bbb: if res# > 90 then res# = res# - 90 if res# < 90 then res# = 270 + res# goto aaa Буду очень благодарен за помощ :SOS: |
Re: Формулы виграх
а функции арктангенса в ДБ нет?
|
Re: Формулы виграх
есть !
ATAN() Эта команда возвращает арктангенс числа. Возвращаемое значение является вещественным числом. |
Re: Формулы виграх
Вложений: 2
На рисунке показано, как найти угол между двумя точками - A и C. Для этого строим воображаемый прямоугольный треугольник. Определяемся, какой угол нам нужно найти - альфа или бета.
Зная координаты точек A и C, мы можем найти стороны треугольника AB и BC. Затем, чтобы найти угол альфа, нужно взять арктангенс от выражения Код:
BC / AB Код:
AB / BC |
Re: Формулы виграх
Цитата:
|
Re: Формулы виграх
Да нужно было мне тоже однажды найти такую формулу. Нашёл. =)
Но: она находит угол из 2 значений nx и ny. Тоесть у меня была стрела, которая двигалась в определённом направлении, и зная на сколько она сдвигалась каждый цикл, или промежуток времени, я вычислял угол: [blitz]If ny>0 tmp=90 Else tmp=270 EndIf Angle=tmp+ATan(nx/ny)[/blitz] Надеюсь без ошибок, там было или nx/ny или ny/nx. Ну сам посмотришь. |
Re: Формулы виграх
|
Re: Формулы в играх
Цитата:
Реально я заметил что есть раздел для формул , но заметил я это пожже , если админ или модератор перенесут тему , буду только блогодарен. Цитата:
|
Часовой пояс GMT +4, время: 06:09. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot