Показать сообщение отдельно
Старый 08.10.2013, 21:08   #6
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: некоторые изометрические демки

Прокрутить колёсико мыши в прямоугольнике ... Зажать ЛМ кнопку мыши и держать некоторое время постепенно поводя по прямоугольнику ...
И увидеть как растут горы

Dim c(100 ,50) : Dim s(12 ,12 )
Global mx ,my , mz , mzz , md , q
Graphics 800,600,32,2 
SetBuffer BackBuffer() 
k=1

	For b= 1 To 12 
		For a=1 To 12 
		
		c(a,b)= Rand(0,1)
		s(a,b)= Rand(0,255)
		Next 
	Next 


ClsColor 222,222,222
While Not KeyHit(1) 
mx = MouseX() : my=MouseY() : mz = Abs(MouseZ () )+1

Cls 
If mx>1 And mx<100 And my>1 And my<50

Color 115,115,115
Line mx,0,mx,50
Line 0,my,100,my
Color 255,5,5
Oval mx-mz+0.5,my-mz+0.5 ,mz*2,mz*2,0
EndIf 
If MouseDown(1) Then md=1 Else md=0
If KeyHit(2) Then q= Not q

module()
Draw()


Color 55,55,55
Rect 0,0,100,50,0

Text 100,20,"mz = "+mz   +"  q = "+q

Flip 
Wend 
End 

Function module()

	For y= 1 To 50
		For x=1 To 100
	
			For z=0 To mz
			
			If Int( ((mx - x)^2 + (my - y)^2)^.5 ) = z Then 
				
				col1 = mz-z
			If md=1 And q=0 Then 	c(x,y) =c(x,y)+ ((mz-z )*0.2)
			If md=1 And q=1 Then 	c(x,y) =c(x,y)-  ((mz-z )*0.2)
				If col1>255 Then col1 =255
				If c(x,y)<=1 Then c(x,y) =1
			;	Color col1,col1,col1
			;	Plot x,y-z1	
							
			EndIf 

			Next 


		Next 
	Next 
End Function 

Function Draw()
	For y= 1 To 50
		For x=1 To 100 
			col3=c(x,y)
			If col3>255 Then col3=255
			Color col3,col3,col3
			If col3<=1 Then  Color 0,0,100 
				
			;	Plot 100+x+y,100+y-c(x,y)		
				Line 	100+x+y,100+y-c(x,y)  , 100+x+y,100+y+c(x,y)
			For z=0 To mz
			If Int( ((mx - x)^2 + (my - y)^2)^.5 ) = z Then 
				
				col2 = 20+z*4
				If col2>255 Then col2 =255
				Color col2,col2,col2
				If col2<=1 Then  Color 0,0,250 
			;	Plot 100+x+y,100+y-c(x,y)	
				Line 	100+x+y,100+y-c(x,y)  , 100+x+y,100+y+c(x,y)		
			EndIf 

			Next 



		Next 
	Next 
End Function 

Function DistABS(ax,ay,bx,by)
	Return  (Abs(bx-ax)+Abs (by-ay))
End Function
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием