Тема: Заливка
Показать сообщение отдельно
Старый 19.05.2009, 21:23   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Заливка

Сообщение от impersonalis Посмотреть сообщение
рекурсия
сам правь мой говнокод (как минимум надо ввести коррецию границы буффера)
Function ZapiliBufferCvetom(buffer%,px%,py%,r%,g%,b%)
	Local pixcolor%=ReadPixel(px,py,buffer)
	Local npixcolor%=256^3+(256^2)*r+256*g+b
	LockBuffer(buffer)
	RecZap(buffer,px,py,pixcolor,npixcolor)
	UnlockBuffer(buffer)
End Function

Function RecZap(buffer,px,py,col,newcol%)
	If ReadPixelFast(px,py,buffer)<>col Return
	WritePixelFast(px,py,newcol,buffer)
	RecZap(buffer,px-1,py,col,newcol)
	RecZap(buffer,px+1,py,col,newcol)
	RecZap(buffer,px,py-1,col,newcol)
	RecZap(buffer,px,py+1,col,newcol)
End Function

Graphics 800,600,32,2
SetBuffer BackBuffer()

Color 255,255,0
Local GeomObjType%
Local XO%,YO%,WO%,HO%
For i=1 To 10
	GeomObjType=Rand(1,2)
	XO=Rand(0,300)
	XO=Rand(0,300)
	WO=Rand(0,300)
	HO=Rand(0,300)
	Select GeomObjType
		Case 1
			Rect XO,YO,WO,HO,0
		Case 2
			Oval XO,YO,WO,HO,0
	End Select
Next

Color 255,0,0
While Not KeyHit(1)
	If MouseHit(1)
		AppTitle "wait.."
		ZapiliBufferCvetom(BackBuffer(),MouseX(),MouseY(),ColorRed(),ColorGreen(),ColorBlue())
		Color Rand(0,255),Rand(0,255),Rand(0,255)
	EndIf
	AppTitle ""
	Flip
Wend
End
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
rr333 (19.05.2009)