OpenGL初心者が3時間で基礎を学ぶ | その3
OpenGL初心者が3時間で基礎を学ぶ | その3
話している暇はありません。おそらくこのページを見に来た方はOpenGLを学ぶモチベーションがあることと思います。環境はPyOpenGL = Python + OpenGLです。前編はこちら->OpenGL初心者が3時間で基礎を学ぶ | その2
※ このページは「Python Programming in OpenGL」(PDF,英語)を日本語で解説してくのが目的です。
その3:関数(方程式)からグラフを描く
前回までは、点や線の基本的な使い方を学びました。しかし、ただ点を打ったり、線を引いたりしても面白くありません。その3では、方程式を使って自動で(?)描かせます。
# # -*- coding: utf-8 -*- ################################################################## # # PyFunc.py # # Chapter 5.2 Plotting 2D Functions # < http://www.math.uiuc.edu/~gfrancis/illimath/StanBlank/PyOpenGL.pdf > # ################################################################## """ OpenGLパッケージをインポート """ from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * import sys """ 数値演算用パッケージのインポート """ # from Numeric import * # 参考書 import numpy as np # 今回はNumericの代わりにNumpyを使う事にします。 def init(): """ 描画エリアの初期化関数 """ glClearColor(1.0, 1.0, 1.0, 1.0) gluOrtho2D(-5.0, 5.0, -5.0, 5.0) def plotfunc(): glClear(GL_COLOR_BUFFER_BIT) """ 点の描画 """ glColor3f(0.0, 0.0, 0.0) glPointSize(3.0) glBegin(GL_POINTS) """ ここが今日の本題 """ # 方程式を描かすために、定義域内部でループを回します。 for x in np.arange(-5.0, 5.0, 0.1): """ 描かす方程式 """ y = x*x glVertex2f(x,y) glEnd() """ 座標軸の表示 """ glBegin(GL_LINES) glVertex2f(-5.0, 0.0) glVertex2f(5.0, 0.0) glVertex2f(0.0, 5.0) glVertex2f(0.0, -5.0) glEnd() """ フラッシュ! """ glFlush() def main(): """ おまじない """ glutInit(sys.argv) glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB) glutInitWindowSize(500,500) glutInitWindowPosition(10,10) glutCreateWindow("PyFunc.py | Function Plotter") glutDisplayFunc(plotfunc) init() glutMainLoop() # main関数の実行 main()
描画結果
見事に三次曲線を描かせる事ができました。(グラフ描画の光が見えてきました)
解説
プログラムの大部分は前回までで説明したおまじないばかりですので、特に説明は少ないです。
点を打つ関数
glBegin(GL_POINTS) for x in np.arange(-5.0, 5.0, 0.05): y = x*x glVertex2f(x,y) glEnd()
さて、ポイントを打つには、3つの手順をとるんでした。
glBegin(GL_POINTS): 頂点を打つことを宣言する。
glVertex2f(x,y): 頂点の座標を宣言する。
glEnd(): 描画の終わりを宣言する。
簡単です。
これにy = 2*x**2 - 3*x**2
という三次方程式を描かせているだけです。簡単ですね。
for文にあるnp.arange
はPython標準ライブラリにあるrange関数の浮動小数点まで扱えるように拡張されたものです。(Numpyを使っている方ならわかると思いますので、申し訳ないですが説明は割愛します)
さてさて
次へ行きましょう
- 作者: 西山信行
- 出版社/メーカー: 西山信行
- 発売日: 2013/06/01
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: Fletcher Dunn,Ian Parberry,松田晃一
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/10/04
- メディア: 大型本
- 購入: 21人 クリック: 141回
- この商品を含むブログ (42件) を見る
- 出版社/メーカー: HOBiRECORDS
- 発売日: 2011/07/29
- メディア: CD
- 購入: 1人 クリック: 25回
- この商品を含むブログ (24件) を見る
冴えない彼女の育てかた 霞ヶ丘 詩羽 バニーVer. 1/4スケール PVC製 塗装済み完成品フィギュア
- 出版社/メーカー: フリーイング
- 発売日: 2017/05/31
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
- 出版社/メーカー: Karapon.Games
- 発売日: 2015/09/24
- メディア: アプリ
- この商品を含むブログを見る