![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перемещение объектов по дробной координате [D7, XP]
v_a_belousov © (2011-01-16 22:12:00)Здравствуйте! Вопрос немного странный, но попробую объяснить. Требуется создать движение объекта по формуле. Проблема в том, что координаты объекта по x и y получаются с дробной частью... например
Time summary: 50
x: 0
y: 0
time: 0
x: 2121.76223927187
y: 1102.5
time: 5
x: 4243.52447854375
y: 1960
time: 10
x: 6365.28671781562
y: 2572.5
time: 15
x: 8487.0489570875
y: 2940
time: 20
x: 10608.8111963594
y: 3062.5
time: 25
x: 12730.5734356312
y: 2940
time: 30
x: 14852.3356749031
y: 2572.5
time: 35
x: 16974.097914175
y: 1960
time: 40
x: 19095.8601534469
y: 1102.5
time: 45
x: 21217.6223927187
y: 3.09263725739584E-12
time: 50
Подскажите пожалуйста каким образом реализовать движение в таком случае. Если округлять round(x) -//- round(y), то при малых значениях, когда максимальные значения x и y меньше 1 или не больше 1,5 такое округление не подходит.
v_a_belousov (2011-01-16 22:44:00) [1]
> сделай скаляцию
В совокупности с
> Ты думаешь, кого-то будет волновать ошибка в полпиксела?
Спасибо вам) привели мне голову в порядок) думаю доделаю нормально теперь.
DiamondShark (2011-01-16 22:43:00) [2]
> вот такие значения у меня будут
такие значения надо масштабировать для визуализации.
v_a_belousov (2011-01-16 22:41:00) [3]
> ты думаешь, кого-то будет волновать ошибка в полпиксела?
честно говоря думал, что да... просто замучался уже с этим движением... вот и каша в голове...
Palladin (2011-01-16 22:41:00) [4]хотя не, на 1000 многовато будет, на 100 достаточно
Palladin (2011-01-16 22:40:00) [5]ну сделай скаляцию на 1000, будет наглядно, в чем проблеммы то?
v_a_belousov (2011-01-16 22:39:00) [6]
> я не понял рассказ про round, чем не устраивает?
К примеру вот такие значения у меня будут, что вполне часто будет встречатся. И если округлить их через round, то что получим...?
Time summary: 0.42256170628983
x: 0
y: 0
time: 0
x: 0.326530612244898
y: 0.0787442524695544
time: 0.042256170628983
x: 0.653061224489796
y: 0.139989782168097
time: 0.084512341257966
x: 0.979591836734694
y: 0.183736589095627
time: 0.126768511886949
x: 1.30612244897959
y: 0.209984673252145
time: 0.169024682515932
x: 1.63265306122449
y: 0.218734034637651
time: 0.211280853144915
x: 1.95918367346939
y: 0.209984673252145
time: 0.253537023773898
x: 2.28571428571429
y: 0.183736589095627
time: 0.295793194402881
x: 2.61224489795918
y: 0.139989782168097
time: 0.338049365031864
x: 2.93877551020408
y: 0.0787442524695545
time: 0.380305535660847
x: 3.26530612244898
y: 6.84131570838353E-17
time: 0.42256170628983
DiamondShark (2011-01-16 22:36:00) [7]
> как же показать движение с дробной частью...
Округлить.
Ты думаешь, кого-то будет волновать ошибка в полпиксела?
Palladin (2011-01-16 22:35:00) [8]никак... я не понял рассказ про round, чем не устраивает?
v_a_belousov (2011-01-16 22:34:00) [9]
> Что значит "реализовать движение"? Нарисовать на экране?
> Ну так дробные пикселы пока ещё не научились производители
> мониторов делать.
Это я знаю, что не научились) не нарисовать, а показать скорее.
> Если "реализовать движение" -- это что-то другое, то так
> и реализовать, с дробной частью.
А чем показать это движение? Или в чем? Не могу никак додуматься.
> Требование целочисленности откуда вообще взялось?
Раз с дробной частью на экране пока нельзя...) значит надо как то округлить... вот отсюда требование у меня в голове и взялось, потому что не могу никак понять как же показать движение с дробной частью...
DiamondShark (2011-01-16 22:23:00) [10]
> Подскажите пожалуйста каким образом реализовать движение
> в таком случае.
Что значит "реализовать движение"? Нарисовать на экране? Ну так дробные пикселы пока ещё не научились производители мониторов делать.
Если "реализовать движение" -- это что-то другое, то так и реализовать, с дробной частью.
Требование целочисленности откуда вообще взялось?