Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Tô màu cho từng điểm của Rectangle

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    13

    Unhappy Tô màu cho từng điểm của Rectangle

    Có ai biết cách nào để tô màu từng pixel trong Rectangle không? Giúp mình với.

  2. #2
    Ngày gia nhập
    11 2006
    Nơi ở
    Tiền Giang
    Bài viết
    28

    Mặc định Bạn tham khảo cách này

    //Ham hoan vi
    Code:
    void Hoan_vi(int &a,int &b)
    {
    	int Temp;
    	Temp=a;
    	a=b;
            b=Temp;
    }
    //Ham hoan vi 2 diem
    Code:
    void Hoan_vi_2_diem(int &X1,int &Y1,int &X2,int &Y2)
    {
    	Hoan_vi(X1,X2);
    	Hoan_vi(Y1,Y2);
    }
    //Ham lam tron
    Code:
    int Round (float x)
    {
    	return (int)(x+0.5);
    }
    /*------------------ Thuat toan DDA ----------------------*/
    // Truong hop 1 & 3: X1<X2
    Code:
    void DrawLine1 (int X1,int Y1,int X2,int Y2,int color)
    {
    	float m,y;
    	int x;
    	m = (float)(Y2-Y1)/(X2-X1);
    	x = X1;
    	y = Y1;
    	putpixel (x,y,color);
    	while ( x < X2 )
    	{
    		x++;
    		y += m;
    		putpixel(x,Round(y),color);
    	}
    }
    // Truong hop 2 & 4: Y1<Y2
    Code:
    void DrawLine2 (int X1,int Y1,int X2,int Y2,int color)
    {
    	float k,x;
    	int y;
    	k = (float)(X2-X1)/(Y2-Y1);
    	x = X1;
    	y = Y1;
    	putpixel (x,y,color);
    	while ( y < Y2 )
    	{
    		y++;
    		x += k;
    		putpixel(Round(x),y,color);
    	}
    }
    Code:
    void DrawLine (int X1,int Y1,int X2,int Y2,int color)
    {
    	if(X1 == X2 && Y1 == Y2)
    	{
    		putpixel(X1,Y1,color);
    		return;
    	}
    	if( abs(X2-X1) >= abs(Y2-Y1) )
    	{
    		if ( X1>X2 )
    			Hoan_vi_2_diem(X1,Y1,X2,Y2);
    		DrawLine1(X1,Y1,X2,Y2,color);
    	}
    	else
    	{
    		if ( Y1>Y2 )
    			Hoan_vi_2_diem(X1,Y1,X2,Y2);
    		DrawLine2(X1,Y1,X2,Y2,color);
    	}
    }
    /*----------------------------------------------------------------*/

    Code:
    void Sap_xep_1(int &Left,int &Top,int &Right,int &Bottom)
    {
    	if(Top<Bottom)
    		Hoan_vi(Top,Bottom);
    	if(Left>Right)
    		Hoan_vi(Left,Right);
    }
    /*-------------- TO HINH CHU NHAT ---------------------------*/
    Code:
    void FillRectangle (int Left,int Top,int Right,int Bottom,int fColor)
    {
    	int y;
    	Sap_xep_1(Left,Top,Right,Bottom);
    	for(y=Bottom;y<=Top;y++)
    	{
    		DrawLine(Left,y,Right,y,fColor);
    		delay (DELAY);
    	}
    }

Các đề tài tương tự

  1. Nhân vật di chuyển với List và Rectangle bằng XNA
    Gửi bởi nhokviet trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 12
    Bài viết cuối: 15-10-2013, 08:11 PM
  2. Graphic Làm sao move / resize / select một shape(rectangle, line, circle...) như trong paint?
    Gửi bởi markpq trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 02-03-2013, 08:09 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn