2016-11-15 180 views
0

我正在使用wx python繪製標尺。我使用drawarc和drawCircle。 但結果並非如我所料。圓弧和圓不精確繪製,看起來很醜。 GaugeImagewx python繪製圓弧和圓

   pen = wx.Pen(wx.WHITE,2) 
       dc.SetPen(pen) 
       xFullCoordinate = (x + (OutsideRadius * math.cos((0.5 * math.pi) + (FullDeg * math.pi * newValue)/((MaxValue - MinValue) * 180)))) 
       yFullCoordinate = (y + (OutsideRadius * math.sin((0.5 * math.pi) + (FullDeg * math.pi * newValue)/((MaxValue - MinValue) * 180)))) 
       xStartCoodrinate = (x + (OutsideRadius * math.cos((0.5 * math.pi) + (StartDeg * math.pi)/180))) 
       yStartCoodrinate = (y + (OutsideRadius * math.sin((0.5 * math.pi) + (StartDeg * math.pi)/180))) 
       dc.DrawArc((xFullCoordinate,yFullCoordinate),(xStartCoodrinate,yStartCoodrinate),(x, y)) 
       dc.SetBrush(wx.Brush((48,100,175))) 
       dc.DrawCircle(x, y, InsideRadius) 

回答

2

上當前正在使用的DC的頂端創建wx.GraphicsContext。請參閱in wxPython Phoenix docs以瞭解如何。在GraphicsContext上繪製將提供很好的抗鋸齒圖形。請注意,GraphicsContext的繪圖命令可能略有不同。

+1

'wx.GCDC'是將代碼轉換爲使用圖形上下文的好方法。它在'wx.GraphicsContext'的頂部實現了'wx.DC' API。 – RobinDunn

+0

@RobinDunn:我沒有提及''GCDC'',因爲我在wxPython經典版中使用它時遇到了問題(發現很難將GCDC放在現有的DC之上),但是好點! – nepix32