PDA

View Full Version : کارکرد و سوال در مورد این فانکشن ها



hojjatcroos
دوشنبه 12 بهمن 1388, 13:28 عصر
سلام به دوستان عزیزم
سوالی از خدمت دوستان داشتم در مورد دو دستور زیر که آقای mzjahromi در تاپیک قراردادند

function Picture.NextRow(i:Integer;var down:Integer):Boolean;
var
x,y,count:Integer;
flag:Boolean;
begin
y:=i+1;
Flag:=False;
repeat
count:=0;
for x:=0 to w-1 do
if getpixel(X,y)<>BackColor then
Count:=Count+1;
if count>0 then
flag:=True;
y:=Y+1;
until ((Flag and(count=0))or(y=h));
down:=y;
if Y>=h then
NextRow:=False
Else
NextRow:=True;
End;

function Picture.Nextcol(top,down,i:Integer;var Right:Integer):Boolean;
var
x,y,count:Integer;
flag:Boolean;
begin
X:=i+1;
Flag:=False;
repeat
count:=0;
for y:=top to down do
if getpixel(X,y)<>BackColor then
Count:=Count+1;
if count>0 then
flag:=True;
X:=X+1;
until ((Flag and(count=0))or(X>=W));
Right:=X;
if X>=W then
Nextcol:=False
Else
Nextcol:=True;
End;
آیا در دستور اول منظور از W همون عرض تصویر هست؟
ایا در دستور اول دو متغییر گرفته شده مقادیر سطر و ستون پیکسلی هستند؟
اگر به زبان پاسکال نوشته شده چرا getpixel دو آرگومان می گیرد؟
بی زحمت یک توضیح کلی هم درباره دستور دوم بدید.

ممنون.

tdkhakpur
سه شنبه 13 بهمن 1388, 19:44 عصر
خب شما توضیح کلی خواستید در صورتی که سورس کلی را نفرستادید.
وقتی یک شخصی برنامه می نویسید قرار نیست که از توابع استاندارد استفاده کنید بلکه برای خودش دستورات شخصی نیز می سازد.
ولی در مورد اینکه چرا getpixel دو آرگومان دارد و یا w چیست باید عرض کنم که ایشان متغییر های عمومی برای برنامه تعریف کرده و توابع از انها استفاده میکنند.
کار برنامه هم احتمالا یک نوع پردازش تصویر برای یافتن شکل و یا چیزی تو این مایه هاست.