一个输出爱心形状的c语言代码,求大神解释原理

一个输出爱心形状的c语言代码,求大神解释原理,第1张

原始的心形线的极坐标方程为:r=a(1-cosθ),有多种变化的情形,如:

看起来心形效果更好的一种方式用直角坐标表示是:

程序的截图看不清具体细节,估计是按照这个公式做的计算:

对给定的一组(x,y)做循环,按如上公式计算:

a = xx + yy -1;

f = aaa - xxyyy;

如果f<0,代表(x,y)在心形内,显示一个标记;

如果f>0,代表(x,y)在心形外,显示空白,或者不显示。

可以通过循环语句和预先定义的图形模板来实现自定义的图形。

具体实现方法可以参考如下程序:

#include <stdioh>
#define WIDTH 9    // 宽也即列数
#define HEIGHT 7   // 高也即行数
#define CHAR ""  
int Modal[HEIGHT][WIDTH]=  // 定义形状的模板
{
{0,1,1,1,0,1,1,1,0},
{1,0,0,0,1,0,0,0,1},
{1,0,0,0,0,0,0,0,1},
{0,1,0,0,0,0,0,1,0},
{0,0,1,0,0,0,1,0,0},
{0,0,0,1,0,1,0,0,0},
{0,0,0,0,1,0,0,0,0}
};
void main()
{
    int i,j;
    for(i=0;i<HEIGHT;i++)  // 控制高度即行数
    {
        for(j=0;j<WIDTH;j++)  // 控制宽度即列数
        {
            if(Modal[i][j])  // 根据模板输出号或空格
                printf(CHAR);
            else 
                printf(" ");
        }
        printf("\n");
    }
}

注:更改模板的长宽、显示字符及模板内容,即可显示不同的图形。

main()
{int i,j;
clrscr();
for(i=1;i<4;i++)
{for(j=0;j<16;j++)
if(j<=2-i||(j>=2+i&&j<=9-i)||j>=9+i)
printf(" ");
else printf("");
printf("\n");}
for(i=1;i<7;i++)
{ for(j=0;j<16;j++)
if(j>=i-1&&j<=12-i)
printf("");
else printf(" ");
printf("\n");}
}
根据自己的喜欢改一点点数据,就可以调整这个心的大小

#include <stdioh>
void heart() {
printf("                           \n");
printf("                           \n");
printf("                            \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                             \n");
printf("                              \n");
}
int main() {
heart();
return 0;   
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13383735.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存