欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python光學(xué)仿真wxpython之DC繪圖

 更新時(shí)間:2021年10月19日 14:25:45   作者:微小冷  
這篇文章主要為大家介紹了Python光學(xué)仿真wxpython之DC繪圖的基本概念及用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助

一般來(lái)說(shuō),系統(tǒng)與繪圖程序之間的信息交換是由圖形設(shè)備接口(Graphics Device Interface,GDI)實(shí)現(xiàn)的,在wxpython中,通過(guò)device context(DC)對(duì)象來(lái)實(shí)現(xiàn)GDI的功能。

DC對(duì)象的創(chuàng)建非常簡(jiǎn)單,只需引用wx.PaintDC即可,而后則可通過(guò)dc來(lái)設(shè)置畫筆dc.SetPen,有了畫筆,就可以進(jìn)行圖形繪制了。于是,我們?cè)倏紤]到圖形的屬性,包括形狀、顏色與邊框等,更細(xì)致地說(shuō),是圖形形狀、填充顏色、邊框類型、邊框顏色。

我們可以通過(guò)一個(gè)矩形的例子來(lái)說(shuō)明:

在這里插入圖片描述

上面的窗口由如下代碼實(shí)現(xiàn)。

import wx
class Example(wx.Frame):
    def __init__(self, parent,title):
        super(Example,self).__init__(parent,title=title,size=(350,280))
        self.Bind(wx.EVT_PAINT, self.OnShowColour)
        self.Center()   #居中
        self.Show()     #顯示
    def OnShowColour(self,evt):
        dc = wx.PaintDC(self)
        dc.SetPen(wx.Pen('#d4d4d4'))    #設(shè)置畫筆顏色
        dc.SetBrush(wx.Brush('#c56c00'))#設(shè)置填充顏色
        dc.DrawRectangle(10,15,90,60)   #繪制矩形
        dc.SetBrush(wx.Brush('#1ac500'))
        dc.DrawRectangle(130,15,90,60)
        dc.SetBrush(wx.Brush('#539e47'))
        dc.DrawRectangle(250,15,90,60)
        dc.SetBrush(wx.Brush('#004fc5'))
        dc.DrawRectangle(10,105,90,60)
def test():
    app = wx.App()		#創(chuàng)建App對(duì)象
    Example(None,'Rect')#創(chuàng)建繪圖窗口
    app.MainLoop()
if __name__ == "__main__":
    test()

首先,通過(guò)dc.SetPen()設(shè)置畫筆屬性,wx.Pen('#d4d4d4')的標(biāo)準(zhǔn)調(diào)用格式為wx.Pen(wx.Colour,width,style),width顧名思義即為畫筆寬度,'#d4d4d4'是Colour類的一種表示,為紅、綠、藍(lán)三組十六進(jìn)制值的組合,從而定義畫筆顏色。除了字符串的表示方法之外,還可以通過(guò)引用標(biāo)準(zhǔn)顏色庫(kù)或者調(diào)用wx.Colour()來(lái)對(duì)顏色進(jìn)行定義。

例如,wx.Colour(255,0,0),‘Red'和'#FF0000'都表示紅色。標(biāo)準(zhǔn)顏色庫(kù)如表所示:

AQUAMARINE BLACK BLUE BLUE VIOLET BROWN
CADET BLUE CORAL CORNFLOWER BLUE CYAN DARK GREY
DARK GREEN DARK OLIVE GREEN DARK ORCHID DARK SLATE BLUE DARK SLATE GREY
DARK TURQUOISE DIM GREY FIREBRICK FOREST GREEN GOLD
GOLDENROD GREY GREEN GREEN YELLOW INDIAN RED
KHAKI LIGHT BLUE LIGHT GREY LIGHT STEEL BLUE LIME GREEN
MAGENTA MAROON MEDIUM AQUAMARINE MEDIUM BLUE MEDIUM FOREST GREEN
MEDIUM GOLDENROD MEDIUM ORCHID MEDIUM SEA GREEN MEDIUM SLATE BLUE MEDIUM SPRING GREEN
MEDIUM TURQUOISE MEDIUM VIOLET RED MIDNIGHT BLUE NAVY ORANGE
ORANGE RED ORCHID PALE GREEN PINK PLUM
PURPLE RED SALMON SEA GREEN SIENNA
SKY BLUE SLATE BLUE SPRING GREEN STEEL BLUE TAN
THISTLE TURQUOISE VIOLET VIOLET RED WHEAT
WHITE YELLOW YELLOW GREEN

除了顏色之外,SetPen中還可以定義其他屬性,例如畫筆樣式:

wx.SOLID:實(shí)線

wx.DOT:點(diǎn)線

wx.LONG_DASH:長(zhǎng)橫線

wx.SHORT_DASH:短橫線

wx.DOT_DASH:點(diǎn)橫線

wx.TRANSPARENT:無(wú)邊框

dc.SetBrush為設(shè)置筆刷,即圖形內(nèi)部填充,除了wx.Colour()之外,其style包括以下類型

wx.SOLID:實(shí)心填充

wx.BDIAGONAL_HATCH:右斜紋wx.

CROSSDIAG_HATCH:左斜紋wx.

FDIAGONAL_HATCH:斜交叉紋wx.

CROSS_HATCH:橫豎交叉紋

wx.HORIZONTAL_HATCH:橫紋

wx.VERTICAL_HATCH:縱紋

wx.TRANSPARENT:無(wú)填充

dc.DrawRectangle為矩形繪制命令,其中四個(gè)參數(shù)分別為左上角點(diǎn)的坐標(biāo)以及長(zhǎng)寬值。除了矩形之外,wxpython提供了許多其他的圖形,如表所示

函數(shù) 圖形 參數(shù)備注
dc.DrawEllipse(x, y, width, height) 橢圓
dc.DrawRoundedRectangle(x, y, width, height, radius) 圓角矩形 radius為圓角半徑
dc.DrawArc(xStart, yStart, xEnd, yEnd, xc, yc) 圓弧 xc,yc為圓心
dc.DrawPolygon(points) 多邊形 輸入為點(diǎn)集
dc.DrawRectangle(x, y, width, height) 矩形
dc.DrawSpline(points) 曲線 輸入為點(diǎn)集
dc.DrawLines(points) 折線 輸入為點(diǎn)集
dc.DrawCircle(x, y, radius)

以上就是Python光學(xué)仿真wxpython之DC繪圖的詳細(xì)內(nèi)容,更多關(guān)于wxpython之DC繪圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論