30/09/2018, 16:56
Thuật toán tô màu theo đường biên
Em đang học đồ họa có bài này có thuật toán nhưng e không giải ra được các anh chị giúp em với
Thuật toán tô màu theo đường biên:
(áp dụng với i={1,-1})
Bước 1: Tìm biên trái nhất và biên phải nhất
x1=x; x2=x;
while
(màu(x1-1,y)!=mb) x1=x1-1;
while (màu(x2+1,y)!=mb) x2=x2+1;
qBước 2: Vẽ đoạn (x1,y) và (x2,y) bằng màu tô (mt)
qBước 3: Tính điểm phát triển tiếp theo:
while(màu(x1,y+i)=mb) x1=x1+1;
Bước 4: Nếu x1<=x2:
nx=x1;
y=y+i;
quay lại Bước1;
Bước 5: Kết thúc.
Bài liên quan
Có cái giải thuật tô màu bằng đệ quy này hi vọng gúp được bạn
đây là tô màu loang mà
@@ con` ai song khong :3
//Tô màu biên
#include <graphics.h>
void tomau_biennua(int x, int y, int mb, int mt, int i)
{ int x1,x2;
setcolor(mt);
do
{ x1=x; x2=x;
while (getpixel(x1-1,y)!=mb) x1–;
while (getpixel(x2+1,y)!=mb) x2++;
line(x1,y,x2,y);
while(getpixel(x1,y+i)==mb)x1++;
x=x1; y=y+i;
delay(5);
} while (x1<=x2); }
void tomau_bien(int x, int y, int mb, int mt)
{
tomau_biennua(x,y,mb,mt,1);
tomau_biennua(x,y,mb,mt,-1); }
int main() { initwindow(640, 480); setcolor(4); circle(300,200,100); tomau_bien(300,200,4,2); getch(); closegra