Вниз
Скачать: CL | DM;

Как поделить 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.025 c
14-1105003107
Генератор идей
2005-01-06 12:18
2005.01.23
Правильные названия для программ


4-1101884061
Dionnis
2004-12-01 09:54
2005.01.23
Определение разделительного знака целой и дробной части числа


1-1105023865
Magic_STI
2005-01-06 18:04
2005.01.23
Трабла с обновлением TRichEdit


14-1105023927
Чеширский_Кот
2005-01-06 18:05
2005.01.23
Как пить?


1-1104853281
Sanich
2005-01-04 18:41
2005.01.23
Как в TDBGridEh в колонку вставить CkeckBox???




   Наверх