Показать сообщение отдельно
Старый 03.08.2011, 23:11   #187
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Имитация водной поверхности.

Сообщение от dsd Посмотреть сообщение
Косяк оказался в этой части:
vectorx#=(x1#+x3#*d#)/Sqr#(1+Tan#(angle#))
vectory#=(y1#+y3#*d#)/Sqr#(1+Tan#(angle#))
vectorz#=(z1#+z3#*d#)/Sqr#(1+Tan#(angle#))

В другой функции все передавалось правильно, а в этой уже только целые наружу выходили, причем не как целая часть, а округленные. Где-то они неведомым образом превращались в целые, наплевав, что они обьявлены вот так в начале программы:
Global vectorx#,vectory#,vectorz#

Я так понимаю, что в бэйсике сделав так:
global var1#

var=15/3 ; запишет в var float

var=153/14 ; запишет уже только интежер.
В следующем цикле в первый раз все опять таки правильно выполнится. А второй вызов будет считать переменную уже только целочисленной.
У меня нечто такое происходит почему то. Так и должно быть?
vectorx#=(x1#+x3#*d#)/Sqr#(1.0+Tan#(angle#))
vectory#=(y1#+y3#*d#)/Sqr#(1.0+Tan#(angle#))
vectorz#=(z1#+z3#*d#)/Sqr#(1.0+Tan#(angle#))
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (03.08.2011)