Ruby 如何绘制多段环空
我想画一个由许多部分组成的椭圆,例如: 目标是使用变量定义外径和内径以及管段数量,并让程序自动确定管段的大小和排列 在过去,我一直使用rmagick绘制由正方形组成的正方形,但我意识到,当需要考虑线段的内部和外部曲线时,它会变得更加复杂 我可以看到如何制作一个图像,并将其“复制/粘贴”到周围 我希望有另一个gem/库,我可以使用它,它有一些内置的循环方法 看起来我可以用RVG(ruby vector graphics)绘制它们。 我可以使用多边形方法,但这需要计算点的精确x/y坐标。 我也可以使用“路径”: 这将允许贝塞尔曲线和椭圆弧 这些方法中的任何一种似乎都需要大量的计算 我的想法是:Ruby 如何绘制多段环空,ruby,imagemagick,rmagick,Ruby,Imagemagick,Rmagick,我想画一个由许多部分组成的椭圆,例如: 目标是使用变量定义外径和内径以及管段数量,并让程序自动确定管段的大小和排列 在过去,我一直使用rmagick绘制由正方形组成的正方形,但我意识到,当需要考虑线段的内部和外部曲线时,它会变得更加复杂 我可以看到如何制作一个图像,并将其“复制/粘贴”到周围 我希望有另一个gem/库,我可以使用它,它有一些内置的循环方法 看起来我可以用RVG(ruby vector graphics)绘制它们。 我可以使用多边形方法,但这需要计算点的精确x/y坐标。 我也可以
是否有任何我可能忽略的库/gem或甚至是流程,可以使这更简单?不确定这是否符合要求,但可能值得一看:
convert -size 600x50 xc:black xc:yellow \
\( -size 200x100 xc:lime xc:cyan xc:magenta +append \) \
-size 600x25 xc:red -size 600x10 xc:blue -append result.png
现在,通过更改最后一行,转到极地
convert -size 600x50 xc:black xc:yellow \
\( -size 200x100 xc:lime xc:cyan xc:magenta +append \) \
-size 600x25 xc:red -size 600x10 xc:blue -append \
-background none -virtual-pixel none -distort polar 0 result.png
或使用垫片:
convert -size 600x50 xc:black xc:yellow xc:none[600x20\!] \( -size 180x100 xc:lime xc:none[20x100\!] xc:cyan xc:none[20x100\!] xc:magenta xc:none[20x100\!] +append \) xc:none[600x30\!] -size 600x25 xc:red -size 600x10 xc:blue -append -background none -virtual-pixel none -distort polar 0 result.png
不确定这是否符合要求,但可能值得一看:
convert -size 600x50 xc:black xc:yellow \
\( -size 200x100 xc:lime xc:cyan xc:magenta +append \) \
-size 600x25 xc:red -size 600x10 xc:blue -append result.png
现在,通过更改最后一行,转到极地
convert -size 600x50 xc:black xc:yellow \
\( -size 200x100 xc:lime xc:cyan xc:magenta +append \) \
-size 600x25 xc:red -size 600x10 xc:blue -append \
-background none -virtual-pixel none -distort polar 0 result.png
或使用垫片:
convert -size 600x50 xc:black xc:yellow xc:none[600x20\!] \( -size 180x100 xc:lime xc:none[20x100\!] xc:cyan xc:none[20x100\!] xc:magenta xc:none[20x100\!] +append \) xc:none[600x30\!] -size 600x25 xc:red -size 600x10 xc:blue -append -background none -virtual-pixel none -distort polar 0 result.png
它不是椭圆,而是椭圆。有了它,计算相应的坐标就不难了。你必须使用r*cos(alpha)
和r*sin(alpha)
,就是这样。这可能会让你感兴趣,它不是椭圆,而是椭圆。有了它,计算相应的坐标就不难了。您必须使用r*cos(alpha)
和r*sin(alpha)
,仅此而已。这可能会引起您的兴趣