Тема: 2d сетка
Показать сообщение отдельно
Старый 23.10.2012, 19:34   #2
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: 2d сетка

в принципе всё до чего я додумался ...
вот примеры кода:
 Graphics 800,600 ,32,
SetBuffer BackBuffer() 


While Not KeyHit(1) 
	Cls 
Xoffset# = -10
py =0
For map_pointY = 0 To 12 
	py= py+1
	px =0
	Xoffset# = Xoffset# -.5
	For map_pointX# = -6 To 6 
		px = px +1
		Color 255,255,255
		Plot  400  + (map_pointX*3.5*Xoffset# )  ,  30+ map_pointY*30 
		Text  400  + (map_pointX*3.5*Xoffset# )  ,  30+ map_pointY*30 , px +" "+py
	Next
Next
Flip
Wend 
End


другой вариант ;

Graphics 800,600,32,2 
SetBuffer BackBuffer() 
x = 20
y = 40
z = 50
z2 =30
k =16
FOV = 400
dist =100
Dim tx(k) : Dim ty(k) : Dim tz(k) 

Restore dats
For i = 1 To k
	Read x,y,z
	tx(i)=x
	ty(i)=y
	tz(i)=z
Next
HidePointer 
While Not KeyHit(1) 
Cls ; Сначала очищаем экран 
mx = MouseX()-200 : my= MouseY()

For i=1 To k
 ;   sx = 400+tx(i)*dist/Float(tz(i)+dist)
 ;   sy = 300+ty(i)*dist/Float(tz(i)+dist)

sx = tx(i)*FOV/Float(tz(i)) +400
sy = ty(i)*FOV/Float(tz(i)) -200

x = mx*FOV/Float(200) +400
y = my*FOV/Float(200) -200

Text sx,sy,"."
Text x,y,"+"
;Text xx,yy,"2"
Next

Flip ; Меняем буфер 
Wend 
End 

.dats
Data 0,0,0

Data 0,300,200
Data 20,300,200
Data -20,300,200

Data 20,300,220
Data -20,300,220
Data 0,300,220

Data 20,300,240
Data -20,300,240
Data 0,300,240

Data 20,300,260
Data -20,300,260
Data 0,300,260

Data 20,300,280
Data -20,300,280
Data 0,300,280
(Offline)
 
Ответить с цитированием