绘制圆形
16 / 30
学习使用距离函数绘制基本图形,理解像素坐标系统和distance函数的应用。
圆形的本质是:所有到中心距离相同的点。用 length() 算距离,用 step() 判断在不在圆内。
计算到中心的距离
先把坐标居中,再用 length 计算当前像素到中心的距离:
length(p) = sqrt(p.x * p.x + p.y * p.y),就是数学里的两点距离公式。
用 step 判断圆内外
d < 半径 表示在圆内,用 step 实现:
d < 0.3:step(0.3, d)= 0,1.0 - 0= 1(圆内,白色)d >= 0.3:step(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 圆变大,接近填满画面。