绘制圆形

16 / 30
学习使用距离函数绘制基本图形,理解像素坐标系统和distance函数的应用。

圆形的本质是:所有到中心距离相同的点。用 length() 算距离,用 step() 判断在不在圆内。


计算到中心的距离

先把坐标居中,再用 length 计算当前像素到中心的距离:

length(p) = sqrt(p.x * p.x + p.y * p.y),就是数学里的两点距离公式。


用 step 判断圆内外

d < 半径 表示在圆内,用 step 实现:

  • d < 0.3step(0.3, d) = 0,1.0 - 0 = 1(圆内,白色)
  • d >= 0.3step(0.3, d) = 1,1.0 - 1 = 0(圆外,黑色)

练习

练习代码里 circle = 0.0(全黑)。用 1.0 - step(0.3, d) 计算圆形遮罩,让画面中央出现一个白色圆。

答案解析

step(0.3, d)d < 0.3 时返回 0,在 d >= 0.3 时返回 1。用 1.0 - 反转:圆内为 1(白),圆外为 0(黑)。

半径 0.3 是相对于归一化坐标 0~1 的比例。改成 0.15 圆变小,改成 0.45 圆变大,接近填满画面。

GLSL 代码编辑器

正确代码预览

当前代码预览