#include

int main() {

for (float y = 1.5f; y > -1.5f; y -= 0.1f) {

for (float x = -1.5f; x < 1.5f; x += 0.05f) {

float a = x * x + y * y - 1;

putchar(a * a * a - x * x * y * y * y <= 0.0f ? ‘*‘ : ‘ ‘);

}

putchar(‘\n‘);

}

}

*********************************************************************************************

#include

int main() {

for (float y = 1.5f; y > -1.5f; y -= 0.1f) {

for (float x = -1.5f; x < 1.5f; x += 0.05f) {

float z = x * x + y * y - 1;

float f = z * z * z - x * x * y * y * y;

putchar(f <= 0.0f ? ".:-=+*#%@"[(int)(f * -8.0f)] : ‘ ‘);

}

putchar(‘\n‘);

}

}

*********************************************************************************************

#include

#include

float f(float x, float y, float z) {

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() {

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‘);

}

}

*********************************************************************************************

#ifdef _MSC_VER

#define _CRT_SECURE_NO_WARNINGS

#endif

#include

#include

float f(float x, float y, float z) {

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() {

FILE* fp = fopen("heart.ppm", "w");

int sw = 512, sh = 512;

fprintf(fp, "P3\n%d %d\n255\n", sw, sh);

for (int sy = 0; sy < sh; sy++) {

float z = 1.5f - sy * 3.0f / sh;

for (int sx = 0; sx < sw; sx++) {

float x = sx * 3.0f / sw - 1.5f;

float v = f(x, 0.0f, z);

int r = 0;

if (v <= 0.0f) {

float y0 = h(x, z);

float ny = 0.001f;

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) / sqrtf(3) * nd * 0.5f + 0.5f;

r = (int)(d * 255.0f);

}

fprintf(fp, "%d 0 0 ", r);

}

fputc(‘\n‘, fp);

}

fclose(fp);

}

*********************************************************************************************

#include

#include

#include

#include

float f(float x, float y, float z) {

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() {

HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE);

_TCHAR buffer[25][80] = { _T(‘ ‘) };

_TCHAR ramp[] = _T(".:-=+*#%@");

for (float t = 0.0f;; t += 0.1f) {

int sy = 0;

float s = sinf(t);

float a = s * s * s * s * 0.2f;

for (float z = 1.3f; z > -1.2f; z -= 0.1f) {

_TCHAR* p = &buffer[sy++][0];

float tz = z * (1.2f - a);

for (float x = -1.5f; x < 1.5f; x += 0.05f) {

float tx = x * (1.2f + a);

float v = f(tx, 0.0f, tz);

if (v <= 0.0f) {

float y0 = h(tx, tz);

float ny = 0.01f;

float nx = h(tx + ny, tz) - y0;

float nz = h(tx, tz + ny) - y0;

float nd = 1.0f / sqrtf(nx * nx + ny * ny + nz * nz);

float d = (nx + ny - nz) * nd * 0.5f + 0.5f;

*p++ = ramp[(int)(d * 5.0f)];

}

else

*p++ = ‘ ‘;

}

}

for (sy = 0; sy < 25; sy++) {

COORD coord = { 0, sy };

SetConsoleCursorPosition(o, coord);

WriteConsole(o, buffer[sy], 79, NULL, 0);

}

Sleep(33);

}

}

原文:https://www.cnblogs.com/LyShark/p/9064141.html

打印心形c语言,C语言打印心形相关推荐

  1. 用C语言Linux下打印带颜色的字符串

    用C语言Linux下打印带颜色的字符串 字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色  字颜色:30---------- ...

  2. c语言打印字符的函数参数,C语言格式化打印函数vsnprintf()的实现

    Linux内核的格式化打印函数是printk(),它与printf()函数是类似的,都是根据格式字符串把可变参数列表转化成字符序列,然后输出到控制台. printf()是打印到标准输出stdout. ...

  3. java心形代码_使用java打印心型、圆形图案的实现代码_java

    相信对于打印三角形都没什么难度,只需要利用for循环嵌套使用就行 但是对于打印圆形和三角形不同因为到圆心距离相等的点一般不会横坐标和纵坐标都为整数 打印爱心 爱心的公式 (x²+y²-1)³-x²*y ...

  4. 用c语言,制作一个心形彩色告白图案(附源码)

    今天我们来一个好玩的,用c语言,制作一个心形彩色告白图案. 送给c语言初学者 代码: #include<stdio.h> #include<math.h> #include&l ...

  5. R语言FOR循环打印9*9乘法表

    R语言FOR循环打印9*9乘法表 算法原理 使用for循环打印99乘法表时,需要两重循环,第一重循环乘数,第二重循环表示被乘数,打印当乘数大于等于被乘数时的结果,并在每次第二重循环结束时换行. 代码和 ...

  6. Go语言gdb调试打印全局变量

    总结自 Golang GDB print global variable 在使用GDB工具调试golang程序时,需要print一个全局变量,遇到各种报错,没办法打印出来,这里记录一下解决方法. 我的 ...

  7. C语言 for循环打印倒三角

    C语言 for循环打印倒三角 #include<stdio.h> int main(void) {int n, i, j;for(n = 4; n > 0; n--)//控制行,每行 ...

  8. c语言for循环打印九九乘法口诀的三种简单方法

    c语言for循环打印九九乘法口诀的三种简单方法 由于在学习c语言,今天在复习巩固知识,练习代码的时候,简单的总结了三种for循环打印九九乘法口诀的方法,加深了自己的理解.代码注释和简单的思路已经注释在 ...

  9. c语言如何打印unicode字符,如何在C ++中打印Unicode字符?

    杨魅力 要表示字符,您可以使用通用字符名称(UCN).字符'ф'的Unicode值为U + 0444,因此在C ++中您可以将其写为'\ u0444'或'\ U00000444'.此外,如果源代码编码 ...

  10. c语言全局变量控制打印线宽的方法,CAD中怎么控制图形的打印线宽

    CAD中怎么控制图形的打印线宽 无论你是否使用专业软件,使用哪种专业软件,在绘图前必须了解单位或行业对出图比例.文字.线型.线宽输出的要求,画图前就合理规划,画完图后正确设置,才能顺利绘制并输出规范标 ...

最新文章

  1. 使用 IDEA 解决 Java8 的数据流问题,用过的都说好!!!
  2. 算法提高课-搜索-DFS之搜索顺序-AcWing 1117. 单词接龙:dfs
  3. 8、web入门回顾/ Http
  4. android模拟多任务键,模拟Android Handler机制——单线程处理多任务
  5. VTK:InfoVis之MutableGraphHelper
  6. 【转】刨根究底字符编码【2.0版】(3):字符编码的由来、演变与ASCII码
  7. 第11篇:Flowable-BPMN部署常见问题没有对ACT_RE_PROCDEF表进行插入操作
  8. c#中的long类型示例_C#中带示例的无符号字节数组
  9. 设计模式(17) 访问者模式(VISITOR) C++实现
  10. 互联网日报 | 6月16日 星期三 | 滴滴试点早高峰拼成0佣金计划;小米“急”招自动驾驶相关人才;苹果正式推出播客订阅服务...
  11. PHP中将首字母大写的函数,在PHP中,使用()函数来将单词首字母转换为大写。
  12. 旋转矩阵与欧拉角的相互转换及代码
  13. 【求助】C# Charting控件 画散点图,当所有的点X=0时,X轴的位置画错了,代码如下...
  14. did you register the component correctly? For recursive components, make sure to provide the name
  15. html缎带按钮,6款丝带蝴蝶结系法图解_乌托家家居网
  16. 免费GB网络硬盘|网盘|网络U盘|最好的免费网络硬盘|赚钱网盘
  17. 分享盘点9个可免费使用的网站CDN加速服务
  18. 商场会员管理系统c语言,商场收银系统(C语言).doc
  19. dva的用法_dva入门讲解
  20. Elasticsearch之拼音搜索(十五)

热门文章

  1. java链式调用空指针_java 链式调用
  2. 一维抛物线的matlab求解,一维抛物线偏微分方程数值解法(附图及matlab程序)
  3. 如何在mfc主对话框中再显示子对话框_win10扩展显示器设置方法
  4. python接口自动化测试框架实战从设计到开发_Python接口自动化测试框架实战 从设计到开发...
  5. sqlite3_finalize sqlite3_close
  6. python函数和方法的编写原则_跟老齐学Python之传说中的函数编写条规
  7. linux和python的关系_Python、Linux与我的缘分
  8. 请简述计算机硬件系统的运行过程,操作系统简述题
  9. 密码锁 java接口_从synchronized和lock区别入手聊聊java锁机制
  10. php标准输出重定向,python标准输出重定向方式