Показать сообщение отдельно
Старый 07.11.2011, 18:28   #19
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Разделить мир на квады

Как можно узнать позицию Triangle?
у тебя же вроде регулярная сетка - зная последовательность трианглов можно узнать позицию сразу из номера.

типа если квады стоят так:

1 2 3
4 5 6

и каждый квад = 2 триангла (последовательно в памяти)

то как-то так:

quadID = triangleID / 2
quadX# = quadID Mod numQuadsX
quadY# = floor(quadID / float(numQuadsX))
quadX = quadX / numQuadsX
quadY = quadY / numQuadsY

posX# = lerp(minX,maxX,quadX)
posY# = lerp(minY,maxY,quadY)

Function lerp#(a#,b#,c#)
Return a#+c#*(b#-a#)
End Function
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Mr_F_ за это полезное сообщение:
Program23 (07.11.2011), Randomize (08.11.2011)