我一直在尝试使用GUI创建一个程序,创建一个圆,然后根据用户输入创建多个圆,这些圆应该具有相同的大小,均匀间隔,并且必须有一个点接触外圆。
到目前为止,这是我的代码:
int PI = 3.14159265359;
int main(){
srand(time(0));
while(true){
Point tl(0,0); // to become top left corner of window
Simple_window win(tl,500,500,"Canvas"); // make a simple window
Circle c0(Point(250, 250), 200);
c0.set_color(rand()%243+23); // adjust properties of poly
win.attach(c0);
int n;
cout << "Enter Number of Cycles: ";
cin >> n;
if (n <= 0) break;
int genrand = rand();
int t = rand() * (2*PI);
// int xc = rand() % 200, yc = rand() % 200;
int r = 200*sin(PI/n)/(1 + sin(PI/n));
int x = 250 + r * cos(t);
int y = 250 + r * sin(t);
Vector_ref<Circle>rc;
Circle cr(Point(x,y),r);
cr.set_color(rand()%243+23);
for (int i = 0; i < n; i++){
rc.push_back(cr);
}
for(int k = 0; k < rc.size(); k++) win.attach(rc[k]);
win.wait_for_button(); // give control to the display engine
}
return 0;
}
然而,问题是输出中没有出现主圆圈以外的圆圈......
答案 0 :(得分:0)
您似乎正在学习编程的开始,使用Programming -- Principles and Practice Using C++创建一个简单的GUI,这很棒! (这里是includes )。
现在,您需要注意创建和修改您的变量(对象)的值,以及您使用它的周期。您只准备了一个Circle cr
并且他们多次将其推回到循环内的向量rc
。只需将坐标的计算和Circle的创建移到for
周期内...想一想,然后再试一次。