android中path的arcTo方法的使用

该方法的声明为:

void android.graphics.Path.arcTo(RectF oval, float startAngle, float sweepAngle);

该方法是画一个弧线的路径.

第一个参数是一个RectF类型.这个参数是干嘛的呢?

先说一下,这个弧线是怎么来的?是先画一个椭圆,然后再在这个椭圆上面截取一部分部形。这个图形自然就是一个弧线了。那么这个椭圆是怎么确定的呢?这就是这个rectF参数所起的作用了。

如图所示:

给出这个矩形后,系统就可以算出这个矩形的中心,然后以这个矩开的中心画一个椭圆。

得到这个椭圆后,然后就是截取一部分线了,就得到最终的弧线。这一部分是怎么截取的呢?

这就是后面两个参数共同来表达的。

startAngle这个参数说的是开始的角度。这个好理解,但哪里是0度线呢,又是向哪个方向旋转是正角度数呢?下面由图形来展示:

图上所示的红线就是0度线。

startAngle是开始度数,那sweepAngle是指的什么呢?

sweepAngle指的是旋转的度数,也就是以startAngle开始,旋转多少度,如果sweepAngle是正数,那么就是按顺时针方向旋转,如果是负数就是按逆时针方向旋转。

如果示例:startAngle = 0; sweepAngle=90:

红色部分的弧线就是最终的弧线...

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
arcMoveTo()和arcTo()是QPainterPath的两个方法,用于绘制弧线。 arcMoveTo()方法用于设置绘制弧线的起点,其语法如下: ```python arcMoveTo(x, y, width, height, startAngle) ``` 其,x和y表示弧线的矩形框左上角的坐标,width和height表示矩形框的宽和高,startAngle表示弧线的起始角度(以度数表示)。 arcTo()方法用于绘制弧线,其语法如下: ```python arcTo(x, y, width, height, startAngle, sweepLength) ``` 其,x和y表示弧线的矩形框左上角的坐标,width和height表示矩形框的宽和高,startAngle表示弧线的起始角度(以度数表示),sweepLength表示弧线的角度(以度数表示)。 下面是一个使用arcMoveTo()和arcTo()绘制弧线的例子: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPainter, QPainterPath from PyQt5.QtCore import Qt class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 350, 300) self.setWindowTitle('Arc') self.show() def paintEvent(self, e): qp = QPainter() qp.begin(self) qp.setRenderHint(QPainter.Antialiasing) path = QPainterPath() path.arcMoveTo(100, 100, 80, 80, 30) path.arcTo(100, 100, 80, 80, 30, 120) qp.drawPath(path) qp.end() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) ``` 在这个例子,我们创建一个QPainterPath对象,然后使用arcMoveTo()方法设置绘制弧线的起点,再使用arcTo()方法绘制弧线,并将其绘制在窗口上。运行程序后,我们可以看到绘制的弧线。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值