![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как поделить float [D7, WinXP]
glGLU © (2005-01-09 14:25:00)как поделить 2 значения типа float?
var
Fx: GLfloat;
...
Fx:= (Panel1.ClientWidth-x)/(x-a);
неправильно считает, почему???
begin...end (2005-01-09 15:20:00) [1]> glGLU
0 X ClientWidth
| | |
| | |
| | |
-1 Fx 1
Fx = -1 + (1 + 1) * X / (ClientWidth - 0)
begin
Fx := -1 + 2 * X / ClientWidth
end.
Это решение аналогично [12].
См. также: Яндекс + "линейная интерполяция".
"Читать долго и наизусть" (© ИШ).
Kerk (2005-01-09 15:06:00) [2]glGLU © (09.01.05 14:58) [9]
проверил... исправленный вариант:
f_scale := 2/form1.clientwidth;:) вроде работает
Fx := f_scale*(x-form.сlientwidth div 2);
glGLU (2005-01-09 15:03:00) [3]неработает(((
Kerk (2005-01-09 14:59:00) [4]glGLU © (09.01.05 14:58) [9]
дык попробуй и узнаешь.. будет работать или нет. :))
glGLU (2005-01-09 14:58:00) [5]Kerk © (09.01.05 14:51) [8]
а это будет работать,
мне нежно получать значения, например: 0,625 соответст x=35
где х=35 это положение мыши на форме, а 0,625 значение в интервале [-1;1]
только это надо в коде считать а не вручную
Kerk (2005-01-09 14:51:00) [6]что-то смотрел я на твою формулу.. и ничего не понял... вот.. набросал свой вариант.. :)
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:49:00) [7]упс
ошибся
GLfloat = Single
glGLU (2005-01-09 14:42:00) [8]в общем для движения мыши по форме:
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]
Kerk (2005-01-09 14:36:00) [9]ок..
а теперь приведи пример входных данных для
Fx:= (Panel1.ClientWidth-x)/(x-a);
когда оно неправильно считает
имеется ввиду погрешность или оно совсем неправильно считает?
glGLU (2005-01-09 14:33:00) [10]Double
Kerk (2005-01-09 14:30:00) [11]
> GLfloat = float
что такое float ?
glGLU (2005-01-09 14:29:00) [12]Kerk © (09.01.05 14:27) [1]
GLfloat = float
это тип OpenGL
Kerk (2005-01-09 14:27:00) [13]
> Fx: GLfloat;
что это?