c语言画猪程序,C/C++知识点之如何优雅的使用C语言绘制一只小猪佩奇

本文主要向大家介绍了C/C++知识点之如何优雅的使用C语言绘制一只小猪佩奇,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。今天我们来用C语言画一只小猪佩奇---社会、社会....在画小猪佩奇之前,我们先使用带符号的距离长 (signed distance field,SDF) 来画一个圆形。使用这个方法表示形状,但是这次我们使用 ASCⅡ 字符 \/=\ 画出形状的外框,并填充...
摘要由CSDN通过智能技术生成

本文主要向大家介绍了C/C++知识点之如何优雅的使用C语言绘制一只小猪佩奇,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

今天我们来用C语言画一只小猪佩奇---社会、社会....

在画小猪佩奇之前,我们先使用带符号的距离长 (signed distance field,SDF) 来画一个圆形。

使用这个方法表示形状,但是这次我们使用 ASCⅡ 字符 \/=\ 画出形状的外框,并填充内部,类似这样:

=====

//.....\\

||.....||

\\....//

=====

SDF 的梯度(gradient)代表 SDF 变化最大的方向,可用这个方向去决定用哪一个字符。

我们通过差分求 SDF 的梯度近似值,然后用 atan2() 求出梯度的角度:

用 C 语言简单实现,在 [-1, 1] x [-1, 1] 画布中画一个半径 0.8 并带有 0.1 宽度外框的圆形:

#include

#include

#define T double

T f(T x, T y)

{

return sqrt(x x + y y) - 0.8f;

}

char outline(T x, T y)

{

T delta = 0.001;

if (fabs(f(x, y)) < 0.05)

{

T dx = f(x 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值