原始的心形线的极坐标方程为: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;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)