虫脸

题目描述

请画出下面图形。

image.png

三角形边长为100,两个圆半径为30。

题解:



自行车

题目描述

请编程,根据图形中红色数字指定的长度,画出下面图形。圆的半径是100,椭圆的横半径是30,纵半径是10,图中出现的锐角的度数都是60度。

image.png

图中红色的线段和数据不用画出。

题解:

int main(){
    p.c(0);
    p.moveTo(-200,0);
    p.o(100);
    p.rt(30).fd(150+110)
        .lt(120).fd(80).bk(80).rt(120);
    p.bk(110).lt(60).bk(150).rt(60);
    p.fd(180).rt(120).fd(180).o(100)
        .rt(120).fd(180);
    
    p.rt(120).fd(180);
    p.lt(30).fd(10).ee(30,10);
    
    return 0;
}

image.png

台风

题目描述

台风的截面是一个上下大中间小的结构,小C想通过编程模拟台风的截面图形

截面图形是由一串矩形组成,上下对称。

最底下的矩形宽为300,高为20。

相邻两个矩形的宽呈1.6倍的关系,矩形中心点的距离为30。

image.png

输入格式

一个整数n,代表矩形个数,n为单数,范围为3~21

输出格式

对应图形

输入/输出例子1

输入:

17

输出:

image.png

题解:

int main(){
    int n ;
    double w = 300.0;
    cin >> n;
    p.up().bk(300);
    for(int i=0;i< n/2;i++) {
        
        p.rr(w,20);
        p.fd(30);
        w = w /1.6;
    }
    for(int i=0;i< n/2 + 1 ;i++) {
        
        p.rr(w,20);
        p.fd(30);
        w = w *1.6;
    }

    return 0;
}


image.png

菱形雪花

题目描述

菱形是特殊的平行四边形(四条边相等的平行四边形),由菱形构成的雪花特别漂亮!请根据输入的雪花的片数n画出菱形雪花。菱形的边长是100,内角分别为60度和120度;菱形的颜色变化是1、2、3、1、2、3……

例如n=6时,可以画出下面的图形。

image.png

输入格式

一个整数n,表示一朵雪花的片数。(n<=20)

输出格式

相应的图形。

输入/输出例子1

输入:

6

输出:

image.png

输入/输出例子2

输入:

3

输出:

image.png

题解:

int main(){
    cinWin();
    int n;
    cin >> n;
    for(int i=0;i<n;i++) {
        p.c(i % 3 + 1);
        p.lt(30).fd(100).rt(60).fd(100);
        p.lt(60).bk(100).rt(60).bk(100).lt(30);
        p.rt(360.0/n);
    }
    
    return 0;
}

image.png

黄金螺旋

题目描述

image.png

台风季节是指每年的5月到9月。小G同学发现台风的形状非常特别,似乎符合某种曲线的形状。

他在查找资料后,了解到这种神奇的曲线名叫“黄金螺旋”,所以他想用GOC来模拟这样的图形。

他选择使用正方形来描述每一段曲线的外接图形,总结出如下规律。

如果把前两个正方形的边长设为5,那么从第三个正方形开始,边长恰好是前两个正方形的边长之和。

为了保证图形不会超过边界,第一个正方形大致位于(-150,-150)

为了能清晰显示图形的细节,笔粗定为2

输入格式

一个整数,代表正方形个数,范围为2~11

输出格式

对应图形

输入/输出例子1

输入:

2

输出:

image.png

输入/输出例子2

输入:

5

输出:

image.png

输入/输出例子3

输入:

11

输出:

image.png

题解:


int arr[15];

int main(){
    cinWin();
    int n, w = 0;;
    cin >> n;
    arr[0] = 5;
    arr[1] = 5;
    p.size(2).moveTo(-150,-150);
    // 使用画笔画“日”字
    p.fd(10).lt(90).fd(5).lt(90).fd(5)
        .lt(90).fd(5).bk(5).rt(90)
        .fd(5).lt(90).fd(5).lt(90);
    
    for(int i=2;i<n;i++) {
        arr[i] = arr[i-1]+ arr[i-2];
        w = arr[i];
        
        
        p.fd(w).rt(90).fd(w).rt(90).fd(w).rt(90)
            .fd(w+ arr[i-1]).rt(180);
        
    }
    
    
    return 0;
}

image.png