- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
// функция квадрата расстояния на гексагональном поле
Fixed SDist2 (Fixed dx, Fixed dy)
{
return (dx*dx+dy*dy+dx*dy);
}
// а теперь типа находим ближайшее целое, ближайшее в гексагональном смысле
const Fixed rx = int(rtx), ry = int(rty);
const Fixed
d00 = SDist2(rx -rtx, ry -rty),
d10 = SDist2(rx+fx1-rtx, ry -rty),
d01 = SDist2(rx -rtx, ry+fx1-rty),
d11 = SDist2(rx+fx1-rtx, ry+fx1-rty);
int x,y;
if (d00<d10 && d00<d01 && d00<d11)
{
x=int(rx); y=int(ry);
} else if (d10<d01 && d10<d11)
{
x=int(rx)+1; y=int(ry);
} else if (d01<d11)
{
x=int(rx); y=int(ry)+1;
} else
{
x=int(rx)+1; y=int(ry)+1;
}
TarasB 18.03.2014 17:38 # −1
absolut 18.03.2014 17:40 # +2
defecate-plusplus 18.03.2014 17:46 # +5
для таких как я - которые "сток" считают index-страницей
absolut 18.03.2014 17:50 # +4
defecate-plusplus 18.03.2014 18:11 # +2
TarasB 18.03.2014 19:50 # +3
А ещё на говнотубе так само делается.
absolut 18.03.2014 21:51 # +3
guest 21.03.2014 18:40 # 0
absolut 21.03.2014 20:33 # 0
guest 22.03.2014 23:17 # +1
roman-kashitsyn 23.03.2014 09:55 # +1
absolut 24.03.2014 07:09 # 0
CHayT 26.10.2020 21:11 # 0
guest8 26.10.2020 21:13 # −999
Saehrimnir 26.10.2020 21:46 # 0
TarasB 24.03.2014 10:15 # 0
bormand 24.03.2014 10:27 # −1
bormand 18.03.2014 22:21 # +1
Не напоминай мне о super hexagon...
Vindicar 19.03.2014 07:57 # +3
roman-kashitsyn 24.03.2014 10:41 # 0
TarasB 24.03.2014 11:14 # 0
roman-kashitsyn 24.03.2014 11:15 # 0