初学mfc,有点疑问,关于在一个圆的范围里随机画若干小圆。
参考的代码是:voidgenerate_circle_points(intn,intseed){doubletheta;doubletemp_x,temp_y;inti;...
参考的代码是:
void generate_circle_points(int n,int seed)
{
double theta;
double temp_x,temp_y;
int i;
srand(seed);
for (i = 1; i <= n; i++)
{
theta = (2*PI / double(n)) * i; //将圆等分的生成圆上点
temp_x = cos(theta);
temp_y = sin(theta);
Point[i][0]=temp_x*350+500;
Point[i][1]=temp_y*250+300;
}
Point[0][0]=Point[n][0];
Point[0][1]=Point[n][1];
}
现在我用的代码是:
void CTuView::OnDraw(CDC* pDC)
{
CTuDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
double theta;
double temp_x,temp_y;
int i,n=10;
int Point[10][2];
for (i = 0; i < n; i++)
{
theta = 2*3.14 *(i+1)/30; //将圆等分的生成圆上点
temp_x = cos(theta);
temp_y = sin(theta);
Point[i][0]=(int)temp_x*350+500;
Point[i][1]=(int)temp_y*250+300;
pDC->Ellipse (Point[i][0],Point[i][1],Point[i][0]+7,Point[i][1]+7);
i--;
}
但是只能画出一个圆,随不随机我也不考虑了,为何只有一个圆的结果呢 展开
void generate_circle_points(int n,int seed)
{
double theta;
double temp_x,temp_y;
int i;
srand(seed);
for (i = 1; i <= n; i++)
{
theta = (2*PI / double(n)) * i; //将圆等分的生成圆上点
temp_x = cos(theta);
temp_y = sin(theta);
Point[i][0]=temp_x*350+500;
Point[i][1]=temp_y*250+300;
}
Point[0][0]=Point[n][0];
Point[0][1]=Point[n][1];
}
现在我用的代码是:
void CTuView::OnDraw(CDC* pDC)
{
CTuDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
double theta;
double temp_x,temp_y;
int i,n=10;
int Point[10][2];
for (i = 0; i < n; i++)
{
theta = 2*3.14 *(i+1)/30; //将圆等分的生成圆上点
temp_x = cos(theta);
temp_y = sin(theta);
Point[i][0]=(int)temp_x*350+500;
Point[i][1]=(int)temp_y*250+300;
pDC->Ellipse (Point[i][0],Point[i][1],Point[i][0]+7,Point[i][1]+7);
i--;
}
但是只能画出一个圆,随不随机我也不考虑了,为何只有一个圆的结果呢 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询