Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
ВнизКак поделить float Найти похожие ветки
← →
glGLU © (2005-01-09 14:25) [0]как поделить 2 значения типа float?
var
Fx: GLfloat;
...
Fx:= (Panel1.ClientWidth-x)/(x-a);
неправильно считает, почему???
← →
Kerk © (2005-01-09 14:27) [1]
> Fx: GLfloat;
что это?
← →
glGLU © (2005-01-09 14:29) [2]Kerk © (09.01.05 14:27) [1]
GLfloat = float
это тип OpenGL
← →
Kerk © (2005-01-09 14:30) [3]
> GLfloat = float
что такое float ?
← →
glGLU © (2005-01-09 14:33) [4]Double
← →
Kerk © (2005-01-09 14:36) [5]ок..
а теперь приведи пример входных данных для
Fx:= (Panel1.ClientWidth-x)/(x-a);
когда оно неправильно считает
имеется ввиду погрешность или оно совсем неправильно считает?
← →
glGLU © (2005-01-09 14:42) [6]в общем для движения мыши по форме:
var
Fx,FCx,Fy,FCy: Double;//GLfloat
...
Fx:= (Panel1.ClientWidth-x)/(x-a);
FCx:= Fx*c;
Fy:= (Panel1.ClientHeight-y)/(y-a);
FCy:= Fy*c;
x,y - координаты положения курсора
a=1
c=-1
------------------------------------
В общем мне нужно перевести координаты окна в интервал [-1;1]
← →
glGLU © (2005-01-09 14:49) [7]упс
ошибся
GLfloat = Single
← →
Kerk © (2005-01-09 14:51) [8]что-то смотрел я на твою формулу.. и ничего не понял... вот.. набросал свой вариант.. :)
var
f_half,f_scale,Fx: Double;
...
f_half := 1/form.clientwidth;
f_scale := 2*f_half;
Fx := f_scale*x-f_half;
...
← →
glGLU © (2005-01-09 14:58) [9]Kerk © (09.01.05 14:51) [8]
а это будет работать,
мне нежно получать значения, например: 0,625 соответст x=35
где х=35 это положение мыши на форме, а 0,625 значение в интервале [-1;1]
только это надо в коде считать а не вручную
← →
Kerk © (2005-01-09 14:59) [10]glGLU © (09.01.05 14:58) [9]
дык попробуй и узнаешь.. будет работать или нет. :))
← →
glGLU © (2005-01-09 15:03) [11]неработает(((
← →
Kerk © (2005-01-09 15:06) [12]glGLU © (09.01.05 14:58) [9]
проверил... исправленный вариант:f_scale := 2/form1.clientwidth;
:) вроде работает
Fx := f_scale*(x-form.сlientwidth div 2);
← →
begin...end © (2005-01-09 15:20) [13]> glGLU
0 X ClientWidth
| | |
| | |
| | |
-1 Fx 1
Fx = -1 + (1 + 1) * X / (ClientWidth - 0)begin
Fx := -1 + 2 * X / ClientWidth
end.
Это решение аналогично [12].
См. также: Яндекс + "линейная интерполяция".
"Читать долго и наизусть" (© ИШ).
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c