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

}

}

心形线c语言原理,C语言打印心形(示例代码)相关推荐

  1. C语言for语句简单打印心形。

    C语言简单for语句打印心形 #include<stdio.h> int main() {int i;int j;int k;int n;int m;printf("\n\n\n ...

  2. linux qt 打印预览控件,Qt实现保存、浏览、预览、打印功能的示例代码

    Qt提供了以文本.图片.HTML等方式来实现对文档的操作,主要用到了QPrinter类和QPainter类,用到了QFileDialog文件窗口.QPrintPreviewDialog预览窗口类和QP ...

  3. 百叶窗设计原理 html5,Html5百叶窗效果的示例代码_html5教程技巧

    本篇文章主要介绍了Html5百叶窗效果的示例代码,小编觉得挺不错的,现在分享给大家HTML5源码和解释,也给大家做个参考.对HTML5感兴趣的小伙伴可以一起跟随小编过来看看吧 本文介绍了Html5百叶 ...

  4. 洗牌程序c语言原理,C语言经典算法 - 洗牌算法

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 说明: 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1-N)打乱重新排列,只 ...

  5. python语言原理_python语言实现

    最近看了看陈儒的<Python源码剖析>,写的很好,这里简单记录下python语言实现的几个点. 1.python对象实现原理 首先说下python中的对象的实现,python中基本所有东 ...

  6. C语言循环选择还有,C语言第五讲,语句 顺序循环选择.(示例代码)

    C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...

  7. c语言无视数据类型字符串存储,C语言基础-第二课-数据类型与运算符(示例代码)...

    1   C语言中的数据类型 1.1   常量 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1#define 定义一个宏常量 1.1.2const 定义一个const常量 1 ...

  8. c语言变量加常量,C语言(二)---常量与变量(示例代码)

    一.进制 1.1 二进制 1.1 简介 二进制数据是用0和1两个数码来表示的数.它的基数是2,进位规则是"逢二进1",借位规则是"借一当二".当前的计算机系统使 ...

  9. 谁的饭量大 c语言编程,c语言第一章第一节 认识变量(示例代码)

    声明:本人大一新生,闲着无聊..写写c语言教程..菜鸟一枚..大神勿喷!!! 接下来我们都用dev来进行编译..vc++太古老了,没提示功能,不好上手,并且老是出毛病..vs太大了,编个c不至于,运行 ...

最新文章

  1. Java设计模式(七大原则和单例模式篇)
  2. 青稞大义 -RISV-V
  3. 软件管家公众号_软件安装管家:大学生最值得关注的公众号
  4. boost::process::throw_on_error相关的测试程序
  5. c++使用netsh命令_渗透常用命令IPC$内网(一)
  6. Intellij IDEA中拉svn分支
  7. Abaqus 子结构分析 实例
  8. DBSCAN聚类算法
  9. w8系统服务器垃圾清理,win8系统盘太大怎么办?来给TA瘦身吧! | SDT技术网
  10. Pandas的介绍和使用
  11. 电脑cd,CD光盘如何翻录在电脑上 将CD复制到电脑上步骤的方法有哪些
  12. 微服务不是架构演变的终点!
  13. RHEL7.3 已经GA了.
  14. web项目登录报错:HTTP Status 500 - Error instantiating servlet class com.gxuwz.medical.web.servlet.LoginSer
  15. LA 7456 Least Crucial Node
  16. 华科计算机学院专业课,华科计算机考研专业课有哪些
  17. 苹果8黑屏无法强制开机_iPhone黑屏转圈圈,无法开机解决方法
  18. EMC 设计经验总结
  19. HDU 2019 Multi-University Training Contest 1 杭电2019多校联合训练赛 第一场 1001 Blank (6578)
  20. helloword catflag逆向

热门文章

  1. java732_LeetCode 732. My Calendar III
  2. IHS融合(Xcode+Gdal,C++)
  3. minio怎么打开永久访问链接
  4. JAVA简历经典语录
  5. 小肚皮最新版本_小肚皮下载_小肚皮APP手机最新版安装 - 风云下载
  6. java 钻石依赖_独立钻石的解决方案-java算法
  7. Windows RPC编程详解(好好学习)
  8. 2-3 建立简易TCP服务端、客户端【socket server/client】【socket、bind、listen、accept、send、closesocket】【conect、recv】
  9. python计算器小程序源码_python编写计算器程序-python代码编写计算器小程序
  10. 计算机 游戏72攻略,探灵游戏攻略大全 探灵全关卡通关攻略