Показать сообщение отдельно
Старый 19.02.2013, 16:54   #12
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Ответ: Новый 3d редактор RiFLe - вопрос к математикам

A_Z
немного побрюзжу по поводу кода

- не забывай о погрешности float и сравнивай float переменные в виде разницы между ними:
If Abs( переменная1 - переменная2 ) < EPSILON
где EPSILON пороговая величина, выше которой значения будут считаться неравными
- сократи квадратные корни в вычислении радиуса и дистанции, для сравнения подобных величин можно обойтись без корня.
- не используй для возведения в квадрат оператор ^, т.к. в блице это вызов функции, намного дороже чем просто перемножить
...
If rasst#=radius#
...
- зачем это условие? Если расстояние не больше и не меньше радиуса, значит и так очевидно что они равны
- не обязательно везде указывать тип переменной ( я про значок # ), достаточно при обьявлении или первом использовании.
- не забывай обьявлять локальные переменные в функциях как Local, иначе может быть конфликт с глобальными переменными
If (angle#>=90 And angle#<180) Or (angle#=>-90 And angle#<0)
	Return True
Else
	Return False
EndIf
- это можно записать короче, т.к. результат булева выражения можно присваивать переменным и соответственно возвращать:
Return ( angle >= 90 And angle < 180 ) Or ( angle => -90 And angle < 0 )
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
A_Z (19.02.2013)