cairo/pycairo 画弧问题:PI/2 没有画出预期的东西
cairo/pycairo drawing arcs issue: PI/2 does not draw what expected
我试图找到类似的问题,关于绘制圆弧和圆的教程,但没有找到对这个问题有帮助的东西。
我正在玩 cairo 和 pycairo 试图画一个带象限的圆。
我不确定我是否在任何一点上迷路了,但我希望画的,好吧,根本不是我正在画的。
我的目标是画一个有不同象限的圆,每个象限有不同的填充颜色。
我构建表面和上下文,我可以画一个完整的圆 (2 * PI)、半个圆 (PI),当我尝试只画一个象限时 (PI/2 -> 90 度) 结果是我不明白的。
第一个示例,整圈(360 度又名 2 * PI 弧度):
ctx.rectangle(0, 0,1200,1200) # Rectangle(x0,y0,w,h)
ctx.set_source_rgb(1,1,1)
ctx.fill()
ctx.arc(600,600,500,0,2*math.pi)
ctx.set_source_rgb(1,0,0)
ctx.fill()
ctx.stroke()
结果正确,一个完整的圆:
full circle as supposed to be with 2 * PI radians (360 degrees)
第二个例子,半圆(180度,PI弧度):
ctx.rectangle(0, 0,1200,1200) # Rectangle(x0,y0,w,h)
ctx.set_source_rgb(1,1,1)
ctx.fill()
ctx.arc(600,600,500,0,math.pi)
ctx.set_source_rgb(1,0,0)
ctx.fill()
ctx.stroke()
结果正确,半圈:
(我已经删除了图像,因为我还没有足够的声誉)
第三个例子,一个quarter/quadrant(90度,圆周率/2):
ctx.rectangle(0, 0,1200,1200) # Rectangle(x0,y0,w,h)
ctx.set_source_rgb(1,1,1)
ctx.fill()
ctx.arc(600,600,500,0,math.pi/2)
ctx.set_source_rgb(1,0,0)
ctx.fill()
ctx.stroke()
我不明白:-?这里发生了什么?
The supposed to be quadrant, PI/2 90 degrees
拜托,有人可以帮我解决这个问题吗?我迷路了。
我自己找到了解决方案,但我不明白为什么每个弧度长度的行为都不完全相同。
如果你发出 move_to:
ctx.move_to(600,600)
现在可以完美呈现了。所以无论如何都要感谢大家。
我试图找到类似的问题,关于绘制圆弧和圆的教程,但没有找到对这个问题有帮助的东西。
我正在玩 cairo 和 pycairo 试图画一个带象限的圆。
我不确定我是否在任何一点上迷路了,但我希望画的,好吧,根本不是我正在画的。
我的目标是画一个有不同象限的圆,每个象限有不同的填充颜色。
我构建表面和上下文,我可以画一个完整的圆 (2 * PI)、半个圆 (PI),当我尝试只画一个象限时 (PI/2 -> 90 度) 结果是我不明白的。
第一个示例,整圈(360 度又名 2 * PI 弧度):
ctx.rectangle(0, 0,1200,1200) # Rectangle(x0,y0,w,h)
ctx.set_source_rgb(1,1,1)
ctx.fill()
ctx.arc(600,600,500,0,2*math.pi)
ctx.set_source_rgb(1,0,0)
ctx.fill()
ctx.stroke()
结果正确,一个完整的圆:
full circle as supposed to be with 2 * PI radians (360 degrees)
第二个例子,半圆(180度,PI弧度):
ctx.rectangle(0, 0,1200,1200) # Rectangle(x0,y0,w,h)
ctx.set_source_rgb(1,1,1)
ctx.fill()
ctx.arc(600,600,500,0,math.pi)
ctx.set_source_rgb(1,0,0)
ctx.fill()
ctx.stroke()
结果正确,半圈:
(我已经删除了图像,因为我还没有足够的声誉)
第三个例子,一个quarter/quadrant(90度,圆周率/2):
ctx.rectangle(0, 0,1200,1200) # Rectangle(x0,y0,w,h)
ctx.set_source_rgb(1,1,1)
ctx.fill()
ctx.arc(600,600,500,0,math.pi/2)
ctx.set_source_rgb(1,0,0)
ctx.fill()
ctx.stroke()
我不明白:-?这里发生了什么?
The supposed to be quadrant, PI/2 90 degrees
拜托,有人可以帮我解决这个问题吗?我迷路了。
我自己找到了解决方案,但我不明白为什么每个弧度长度的行为都不完全相同。
如果你发出 move_to:
ctx.move_to(600,600)
现在可以完美呈现了。所以无论如何都要感谢大家。