如何解决如何使用Processing绘制平滑的四边形网格?
我正在尝试使用Processing中的样条线绘制由几个正方形组成的网格,到目前为止我已经尝试过了
mesh = (
[100,100],[150,[200,[250,[300,[350,[400,[450,[500,[100,150],200],250],300],350],)
def draw():
clear()
background(255)
stroke(0)
strokeWeight(1.2)
beginShape()
for p in mesh:
curveVertex(*p)
endShape()
stroke(*POINT_COLOR)
strokeWeight(POINT_RADIUS)
for p in mesh:
point(*p)
其中 mesh
是所有顶点的矩阵。我想绘制所有正方形的所有 4 条边,如何使用样条线来绘制?稍后我将允许用户拖动顶点来改变网格形状,我希望该形状是平滑的。最终结果将如下所示,但在 2D 平面上:
解决方法
这是我的建议(免责声明:我没有在 python 中使用处理,所以我无法测试运行此代码并且可能存在错误):
mesh = (
[[100,100],[150,[200,[250,[300,[350,[400,[450,[500,100]],[[100,150],150]],200],200]],250],250]],300],300]],350],350]]
)
def draw():
background(255)
stroke(0)
for i in range(len(mesh)):
beginShape()
curveVertex(mesh[i][0][0],mesh[i][0][0])
for j in range(len(mesh[i])):
curveVertex(mesh[i][j][0],mesh[i][j][0])
curveVertex(mesh[i][len(mesh[i]) - 1][0],mesh[i][len(mesh[i]) - 1][0])
endShape()
for i in range(len(mesh[0])):
beginShape()
curveVertex(mesh[0][i][0],mesh[0][i][1])
for j in range(len(mesh)):
curveVertex(mesh[j][i][0],mesh[j][i][0])
curveVertex(mesh[len(mesh) - 1][i][0],mesh[len(mesh) - 1][i][1])
endShape()
这会在每行上画一条线,然后在每列下画一条线(至少,这是我的意图)。请注意,我为每一行创建了自己的列表,而不是将所有坐标对放在一个元组中。这让我能够以更有条理的方式遍历这些点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。