根据像素画圆

int pcircle( IplImage* img, CvPoint ct, double r )
{	
	static CvPoint pre_pt = { img->height/2,img->width/2 }; 
	double a, b;
	//double cosθ,sinθ,k;	
	for( int j = 0; jwidth; j++ )	
	for( int i = 0; iheight; i++ )  
	{
		a = (i-ct.x);
		b = (j-ct.y);
		//k=sqrt((double)(a*a+b*b));
		//cosθ=b/k;
		//sinθ=a/k;
		//cosθ*cosθ+sinθ*sinθ==1;
		//a=r*cosθ;
		//b=r*sinθ;
		//printf("%d %d %f %f %f %d %d",a,b,k,cosθ,sinθ,i,j);
	if ( a*a+b*b-r*r < r && a*a+b*b-r*r>-r )  
	{//if (i*i+j*j-r*r==0) 
	   
		// pre_pt = cvPoint(i,j);   
		//cvCircle( img, pre_pt, 2,cvScalar(0,0,255,0) ,CV_FILLED, CV_AA, 0 );
		
		cvSet2D( img, i, j, cvScalar(0,0,255,0) );
	}
	}	
	return 0;
	
	}


 

你可能感兴趣的:(根据像素画圆)