Pythonで多角形(ポリゴン)を表示するよ

I wrote: 2016/11/05

Pythonを使って多角形を表示します。

普通に用意されている多角形のAPIを使うだけです。赤い多角形を描画しました。

いやー、PyQtGUI開発って便利ですね。画像処理も結構できるし。
ちなみに、ポリゴンって聞くと3Dみたいに感じますけどポリゴンは多角形っていう意味です。

以下はソース
import sys,math
from PyQt4 import QtGui, QtCore

class Sample(QtGui.QMainWindow): 
    def __init__(self, parent = None):
        super(Sample, self).__init__(parent)
        self.setGeometry(50,50,350,350)

    def paintEvent(self,event):
        painter = QtGui.QPainter()
        painter.begin(self)
        painter.setRenderHint(QtGui.QPainter.Antialiasing, True)
        painter.setPen(QtGui.QColor('#FFFFFF'))
        painter.setBrush(QtCore.Qt.white)
        painter.drawRect(event.rect())

        painter.setPen(QtCore.Qt.red)
        painter.setBrush(QtCore.Qt.red)
        self.pgn = QtGui.QPolygonF()
        n = 7                           # n角形
        side = 360 / n
        for i in range(n):
            a = side * i
            x = 150 * math.cos(math.radians(a))
            y = 150 * math.sin(math.radians(a))
            self.pgn.append(QtCore.QPointF(self.width() / 2 + x, self.height() / 2 + y))
        painter.drawPolygon(self.pgn)

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    sample = Sample()
    sample.show()
    sys.exit(app.exec_())
実行されたアプリケーション
03