admin 管理员组文章数量: 887031
2024年1月26日发(作者:二郎神图片大全)
/* 代码来源于:/liuyubobobo/heart-curve-cplusplus/blob/master/ */#include
#include
int main(int argc, char *argv[])
{
float f, x, y, z;
for(y=1.5f; y>-1.5f; y-=0.1f)
{
for(x=-1.5f; x<1.5f; x+=0.05f)
{
z = x*x+y*y-1;
f = z*z*z-x*x*y*y*y;
// =================================== printf("033[47m"); char buf[100] = {"happybirthday"}; if (f<=0.0f) { printf("033[1;31m%c033[0m", buf[(int)(f*-8.0f)]); } else { printf("%c", ' '); } printf("033[0m"); // ===================================== }
printf("n");
}
return 0;
}
加强版:
#include
{ float a = x*x + 9.0f/4.0f*y*y + z*z - 1; return a*a*a - x*x*z*z*z - 9.0f/80.0f*y*y*z*z*z;}float h(float x, float z)
{ for (float y = 1.0f; y >= 0.0f; y -= 0.001f) { if (f(x, y, z) <= 0.0f) return y; } return 0.0f;}int main(int argc, char *argv[])
{ for (float z = 1.5f; z > -1.5f; z -= 0.05f)
{ for (float x = -1.5f; x < 1.5f; x += 0.025f)
{ float v = f(x, 0.0f, z); if (v <= 0.0f)
{ float y0 = h(x, z); float ny = 0.01f; float nx = h(x + ny, z) - y0; float nz = h(x, z + ny) - y0; float nd = 1.0f / sqrtf(nx*nx + ny*ny + nz*nz); float d = (nx + ny - nz)*nd*0.5f + 0.5f; putchar(".:-=+*#%@"[(int)(d * 5.0f)]); } else putchar(' '); } putchar('n'); }}
变形版:
版权声明:本文标题:C语言如何使用C语言代码打印“心形”图案? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1706204876h503976.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论