数式の動的な評価
シューティングなどで「敵の動き」を考える場合には、
どうしても「放物線」のような滑らかな動きを
作成できるようにしなければなりません。
また、文字を点滅させる処理を行いたい場合などにも、
放物線が使えると、見栄えが良くなります。
さらには、
パラメータの割合により、描画サイズをある一定の大きさに限りなく近づける、
というような処理をしたい場合には、分数関数を使いたいですよね。
そういった場合に、ソースコードに直接数式を埋め込んでしまうと、
限られた動き・処理しかできません。
そして動き・処理を変えようとした場合、
ソースコードを直接書き換えなければなりません。
これはとっても不便ですよね。
そこで数式を文字列で渡して、動的に評価をおこなうことにより、
ソースコードの書き換えなしに、動きを変えてしまおう、ということです。
Pythonだと、execで動的に実行できるから、楽なのですよね。
例えば、円運動のサンプルです。
from math import * def calc(expr, angle, r): exec "ret=" + expr return ret r = 10 for angle in range(360): px = calc("cos(radians(angle)) * r", angle, r) py = calc("sin(radians(angle)) * r", angle, r) print angle, px, py
C++とかだと、力技で構文解釈の処理を入れないとダメですね…(たぶん)