Pythonで立体的な円を表示する
I wrote: 2016/10/29
Pythonで立体的に見える円を表示させます。そんで、PyQtを使います。
立体的に見えるようにするためには、円に対してグラデーションを加える必要があります。なので、QRadialGradientを利用して、グラデーションをつけます。光が当たっている部分は白く、そこから離れるにつれて本来の色に近づくように描画します。
これによって円が立体的に見えるようになります。(*´艸`*)
てか、画像処理ならOpenGL使えばいいじゃん。まあ、それは置いておこう...
以下はソースです。
Pythonで立体的に見える円を表示させます。そんで、PyQtを使います。
立体的に見えるようにするためには、円に対してグラデーションを加える必要があります。なので、QRadialGradientを利用して、グラデーションをつけます。光が当たっている部分は白く、そこから離れるにつれて本来の色に近づくように描画します。
これによって円が立体的に見えるようになります。(*´艸`*)
てか、画像処理ならOpenGL使えばいいじゃん。まあ、それは置いておこう...
以下はソースです。
実行されたアプリケーションimport sysfrom PyQt4 import QtGui, QtCore, uicfrom Foo import Ui_MainWindowclass Sample(QtGui.QMainWindow):def __init__(self, parent = None):super(Sample, self).__init__(parent)self.ui = Ui_MainWindow()self.ui.setupUi(self)def paintEvent(self,event):painter = QtGui.QPainter()painter.begin(self)painter.setRenderHint(QtGui.QPainter.Antialiasing, True)painter.setBrush(QtCore.Qt.white)painter.drawRect(event.rect())painter.setPen(QtCore.Qt.white)center = QtCore.QPointF(175, 175)fpoint = QtCore.QPointF(155,155)gradient = QtGui.QRadialGradient(center,100,fpoint)gradient.setColorAt(0.0, QtCore.Qt.white)gradient.setColorAt(1.0, QtCore.Qt.blue)painter.setBrush(gradient)painter.drawEllipse(center, 100, 100)painter.end()if __name__ == '__main__':app = QtGui.QApplication(sys.argv)sample = Sample()sample.show()sys.exit(app.exec_())