ПроЭктировщик
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений (для 71 пользователей)
|
Ответ: Вопрос .Сново гексы
Итак , ввиду того , что никто ничего не предложил ...
После долгих мучений и перелопачивания инета ,сваял нечто своё.
Увы у меня так и не получилось точного определения гекса формулами
может кто поможет в правильном определении ?
Graphics 800,600,32,2
fntArial=LoadFont("Arial",16)
SetFont fntArial
w = 40
h = 40
m = 20
tilex =8
tiley = 6
;gex = LoadImage ("hex3.png") :MaskImage gex,255,255,255
gex = CreateImage(41,41)
SetBuffer ImageBuffer(gex)
Color 200,50,50
Line 0,20, 10,0
Line 10,0, 30,0
Line 30,0,40,20
Line 40,20 ,30,40
Line 30,40,10,40
Line 10,40,0,20
Color 255,255,255
gex_activ=CreateImage(41,41)
SetBuffer ImageBuffer(gex_activ)
L1= 10 :L2= 30
Color 200,78,0
For ww= 1 To 20 Step 2
Line L1,ww,L2,ww
L1= L1-1 :L2= L2+1
Next
For ww= 20 To 40 Step 2
Line L1,ww,L2,ww
L1= L1+1 :L2= L2-1
Next
SetBuffer BackBuffer()
While Not KeyHit(1)
ClsColor 110,110,112
Cls
If KeyHit(2) Then a = a +1 : a = a Mod 3
mx# = MouseX() : my# = MouseY()
;mxs = MouseXSpeed() : mys = MouseYSpeed()
If KeyDown(200) Then n# = n# + 0.01 ;And n# < 3
If KeyDown(208) Then n# = n# - 0.01 :If n# <=0.01Then n# = 0.01
For j=0 To tiley
For i=0 To tilex
x = i * w/4*3
y = j * h +(i Mod 2)*h*0.5
If a = 0 Then
DrawImage gex, x , y
Text x+15 , y+15 ,I+","+j
visual$ = " гексагонами "
Else If a = 1
Color 100,100,100
Rect x , y , w , h , 0
Color 255,255,255
Text x +5 , y +5 ,I+","+j
visual$ = " квадратами "
Else If a = 2
Line x , y , x , y + h
Line x , y , x +w , y
visual$ = " линиями "
End If
Next
Next
sx# = Floor (mx#/w * 4/3)
sy# = Floor ( my#/h - (sx Mod 2)/2);/h/0.5
sxx = Int (sx#)
syy = Int (sy#)
xx = sxx * w/4*3
yy = syy * h +(sxx Mod 2)*h*0.5
Color 0,0,255
Text xx - 5, yy - 5 ,"*"
DrawImage gex_activ , xx , yy
Color 255,255,255
Text 500 ,185 ," Вычисления :"
Text 500 ,200 ,mx# +" / "+w+" * "+4/3+" = "+sx+" :i"
Text 500 ,215 ,my# +" / "+h+" - "+ (sx Mod 2)/2+" = "+sy+" :j"
Text 400 ,40 ,"Положение мышы в сетке : U : "+sxx+" V :"+syy
Text 400 ,55 ,"Координаты мышы в сетке : UX : "+xx+" VY :"+yy
Text 400 ,10 ,"Клавиша 1 меняет виды сетки "
Text 400 ,25 ,"Вид : "+visual$
Flip ; Меняем буфер
Wend
FreeFont fntArial
End
|