pythonで、「おしり曲面」を描画します。
おっぱい曲面の方程式の自然対数を取ると、尻のような形状の曲面になります。今、「尻」という下品な言葉を使ってしまいましたが、「お尻」とすると上品に、「おみ尻」とすると更に上品に、「おみお尻」とするとますます上品になってくるでしょう。
pyqt5
と、opengl
のインストールが必要です。
出典は以下より。
コード
python oshiri.py
で実行してください。
oshiri.py
from PyQt5.QtWidgets import QApplication,QWidget
import pyqtgraph.opengl as gl
from math import *
def bust(x,y):
return 1/8* (6*exp(-((2/3*abs(x) - 1)**2 + (2/3 *y)**2) - 1/3*(2/3*y + 1/2)**3)+ 2/3 *exp(-2.818**11*((abs(2/3*x) - 1)**2+ (2/3 *y)**2)**2) + 2/3*y - (2/3*x)**4)
def draw_oshiri(x, y, distance,pxl=2):
app = QApplication([])
w = gl.GLViewWidget()
w.resize(600,400)
w.opts['distance'] = distance
w.show()
w.setWindowTitle('Oshiri')
p=[ [ xp,yp,log(abs(bust(xp,yp)))] for xp in x for yp in y ]
plt=gl.GLScatterPlotItem(pos=p,color=(1,1,1,1),size=pxl)
w.addItem(plt)
app.exec_()
def linspace(a,b,n):
return [ a+i*((b-a)/n) for i in range(n+1)]
def main():
nx=100
ny=50
x=linspace(-3.0,3.0,nx)
y=linspace(-3.0,3.0,ny)
draw_oshiri(x,y,10,pxl=2)
if __name__=='__main__':
main()
ただ、おっぱい曲面の自然対数を取るだけでは関数のドメインエラーが出てしまうので、まず絶対値(abs)を取ることが必要でした。負の数の自然対数は取れないので。
実行結果
おしりに見えなくもないが、ちょっと違いますね。まあこんなものでしょう。
僕の使っていいよ。
下品なことを書いてしまいましたが、改心するので、ちょっと待っててください。お許しを。