我试图产生多个五边形但由于某种原因五边形相互连接.有什么建议?
GLfloat arr[] = {100,200,340,230,130,190,200,190,260,120,200};
glColor3f(1.0, 1.0, 1.0);
GLfloat angle2, r2, r_big_circle2, r_small_circle2, step2 = 3.14 / 5.0;
r_big_circle2 = 25;
r_small_circle2 = 20;
glPushMatrix();
glBegin(GL_LINE_LOOP);
for (int n = 0; n < 5; n++){
for (int i = 0; i < 10; i++)
{
r2 = (i % 2 == 0 ? r_small_circle2 : r_big_circle2);
angle2 = step2 * i;
glVertex3f(r2 * cos(angle2)-arr[n], r2 * sin(angle2)-arr[n], -500);
}
}
glEnd();
glPopMatrix();
Run Code Online (Sandbox Code Playgroud) 我很难理解以下代码buffer[i] = arr ? arr[i] : 0;.这是否意味着如果arr包含任何东西然后它等于buffer[i],如果不包含它等于0?
#include <iostream>
using namespace std;
int main ()
{
int arr[5]={11,22,33,44,55};
int * buffer;
buffer = new int [5];
for(int i=0;i<5;i++){
buffer[i] = arr ? arr[i] : 0;//true/falls
cout<<buffer[i]<<",";
}
cout<<endl;
int arr2[5]={};
int * buffer2;
buffer2 = new int [5];
for(int i=0;i<5;i++){
buffer2[i] = arr2 ? arr2[i] : 0;//true/falls
cout<<buffer2[i]<<",";
}
cout<<endl;
}
Run Code Online (Sandbox Code Playgroud) 我试图用setTimeout动画3种不同的形状,我的问题是如何使用多个setTimeout来动画3种不同的形状也有更好的方法来做这个可能使用setInterval
window.onload = draw;
var x = 5;
var y = 5;
radius = 50;
var x2 = 50;
var y2 = 120;
var x3 = 53;
var y3 = 230;
var context;
var loopTimer;
function draw(){
var canvas = document.getElementById('canvas');
context = canvas.getContext('2d');
context.save();
context.clearRect(0,0,720,550);
rectangle(x,y);
circle(x2,y2);
circle2(x3,y3);
}
function rectangle(x,y){
//drawing a rectangle
context.fillStyle = "rgba(93,119,188,237)";
context.clearRect(0,0,720,550);
context.rect(x, y, 50, 50);
context.fill();
context.lineWidth = 7;
context.strokeStyle = 'yellow';
context.stroke();
x += 1;
loopTimer = setTimeout('rectangle('+x+','+y+')',50);
}
function circle(x2,y2){ …Run Code Online (Sandbox Code Playgroud)