繪制曲線,首先要看曲線的類型。這幾種曲線可以直接用QT的函數調用完成:
圓弧,橢圓弧:直接用QPainter的成員函數畫。
二次和三次貝塞爾曲線:先構造對應的QPainterPath,再用QPainter::drawPath()畫。
直線就不用說了。
如果不是以上曲線,需要自己分解。有個術語叫tessellation(網格化或者細分),就是在把妳想畫的曲線分解成許多很小的直線段,然後用畫直線的方法畫出來。只要分解得足夠小,看上去跟光滑的曲線沒有區別。如果妳有興趣去讀qt的源碼,妳會發現qt畫弧線和貝塞爾曲線也是用這種方法。