しままるの雑記帳

しままるの思ったことや考えたことをアウトプットする場。「PC/プログラミング」「写真/旅行」「科学(勉強)」「心の問題」が主なテーマ。

プログラミング

gnuplotでハートの形を描く

投稿日:2017年5月6日 更新日:

gnuplotにハートの関数を入れて描画させよう

今回は、対話型グラフ描画ソフトgnuplotで「ハートの形を描く」ということをやってみようと思います。

ハート関数

ハートの形を描画できる関数は、以下に示すような陰関数です。
参考サイト:プログラムモグモグ|美しすぎるハートの数式(こちら

gnuplotで陰関数を疑似的に描く

残念ながらgnuplotで陰関数を描くことはできません。そこで、上記の式を

として、3次元プロットでz=0における等高線を描けば、ハートの形が描けそうです。つまり、3次元プロットを使って、疑似的に陰関数を描いています。やってみましょう。

※サンプルプログラム ここから※
f(x,y)= (x**2+y**2-1)**3-x**2*y**3
len = 3 #座標軸長さ定義
set xrange [-len:len]
#x軸の長さは-3~3です。(len = 3)
set yrange [-len:len]
#y軸の長さは-3~3です。(len = 3)
set zrange [-len:len]
set isosample 200,200
#立体のメッシュの細かさはこのくらいで
set ticslevel len/(-len-len)
#z軸におけるx-y平面の位置はこのくらいで(詳細はこちら)
set contour base
#等高線を表示してください
set cntrparam levels discrete 0.0
#z=0における等高線を表示してください
set nosurface
#表面の表示は要りません
set view equal xyz
#xy軸の比率は同じにしてください
unset border
#グラフの枠は要りません
set xtics axis
#x軸の目盛りはx軸上に書いてください。
set ytics axis
#y軸の目盛りはx軸上に書いてください。
set ztics axis
#y軸の目盛りはx軸上に書いてください。
unset xtics
#x軸の目盛りは要りません。
unset ytics
#y軸の目盛りは要りません。
unset ztics
#y軸の目盛りは要りません。
set zeroaxis ls -1
set view 0,0
#x軸方向に0°、z軸方向に0°傾けた形で描画してください。(xy平面を描画してください)

splot f(x,y) lt 2 lw 2 lc rgb ‘red’

set nokey
set title font “Times New Roman,25”
set title “heart-function”

#pause -1
※サンプルプログラム ここまで※

上記サンプルプログラムを実行します。

描けました。アルゴリズム的には

で表される平面を一旦描いて、そのz=0における等高線を表示させて、平面の表示を消しています。

詳細説明

はこんな形をしています。縦軸の長さは3で、x,y,z軸の交点は原点(0,0,0)です。

ここで例えばz=2における等高線を描くならば

こんな形になりましたz=0の等高線を描けば

このようにハートの形が描けるのです。

できなかったこと

ハートの色を赤色にしたかったのですが、残念ながらできませんでした。等高線の色を変えることができれば実現できるかと思っています。gnuplotに詳しい方、やり方を知っている方がいらっしゃれば、ご教示のほどお願いいたします。

-プログラミング

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

初心者向けLinux入門:ubuntuインストール直後にすべきこと

目次1 homeディレクトリ内ファイルの英語化2 ホストOSとゲストOSの調和を保つ2.1 Guest Addmitionsの設定2.2 ホストOSとゲストOSのファイル共有3 まとめ ubuntuを …

[備忘録]ファイル名をまとめて処理する方法

目次1 bkrenameのインストール2 bkrenameの使用例2.1 先頭文字列の追加、削除2.2 連番の付与3 まとめ bkrenameというソフトを利用して、ファイル名を一括処理する 写真など …

初心者向けLinux入門:ソフトのダウンロード

目次1 sudo apt-get update2 sudo apt-get install2.1 C,C++言語のコンパイラ2.2 python2.3 python3 (pythonのバージョン)2. …

自作PCのおススメ構成紹介

目次1 スペックの最低ライン2 予算を考える3 部品の種類4 レシピ紹介4.1 2万円~3万円4.2 5万円~6万円4.3 8万円~10万円4.4 10万円~5 まとめ おススメ自作PCレシピ紹介 な …

初心者向けLinux入門:デュアルブートでubuntuをインストール

目次1 デュアルブートとは?2 デュアルブートの手順2.1 ①UNetbootinのダウンロード・ブートデバイス作成2.2 再起動→BIOS画面にてUSBからブート2.3 パーティション分割2.4 分 …

管理人


名前:しままる
年齢:20代後半
趣味:写真、科学の勉強
好きなもの:動物、新幹線、飛行機
元職業:メーカー技術系職員
現職業:好きな場所・好きな時間で働く自由人

・経験不問で
・スマホ一台でどこででもできる
・日本未上陸の新しいビジネス

に取り組んでいます!

どんなビジネス?と思ったら
Twitterアカウント
へのフォロー&リプ、DMをお願いします!

今すぐ聞きたい!気になる!という方は
こちら
に登録いただければ、詳しく説明いたします。

一緒に楽しい人生を送りましょう!

お問い合わせはこちら

↓最近の記事

まだデータがありません。