質問するログイン新規登録
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

2815閲覧

Pythonでデジタルアートを作成してみたいのですが質問です。

minideka

総合スコア1

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2022/06/07 17:32

編集2022/06/07 17:33

0

1

質問失礼致します。
最近プログラミングを使ったデジタルアートの存在を知り。

自分もいつか下の画像のようなものを作成できればと思っているのですが、数学の知識がないとやはり難しいですか??
こちらのサイトのソースコードをコピぺしてエディタで実行してみましたが、ソースコードを見ても何が何だか分かりません。(本当に全く分からない)
https://qiita.com/sci_Haru/items/a6faca220972278ad5cc

色々サイトをみたら上手く行くだろうと思ってたのですが、想像をはるかに超える高い壁があるなと感じました。数学の知識がないとデジタルアートは無理でしょうか??

イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

質問のリンク先の内容が本当に「(本当に全く分からない)」のであれば、あきらめたほうがいいでしょう。プログラムを使わなくても幾何学的な絵を書くことはできます。

ただ、本当に(本当に全く分からない)のかどうかはもう少し確認してみたほうがいいのではないかと思います。
シェルピンスキーの三角形の場合必要な数学の知識は

  • XY座標平面上に点を打つこと
  • 座標の値からある計算式を使って新しい座標を求めること
  • 座標を更新しながら手順を次々と実施すること
    だけです。 それほど難しくはないのではないかと思います。
    ただ、具体的な座標の値でえはなく、x1, y3などの記号になっているので、慣れないととっつきにくいかもしれません。

必要なプログラム的知識は

  • 条件分岐や繰り返しなどの基本的な構造
  • 乱数の生成
  • matplotlibを使った簡単な描画
    あたりでしょうか。 matplotlibはちょっと勉強が必要です。

どうでしょう。

やってみる気があるのであれば、まずは紙と鉛筆で手を使って書いてみるのはどうでしょう。プログラムのように15000個も打つのは大変ですし、100個ぐらいだと絵に見えないかもしれませんが、「何をやっているのかはちゃんと理解できる」はずです。

ちなみに、リンク先の説明はちょっと誤解を招くようなところがあるので、直したものを書いておきます。

  1. 以下の3つの頂点の座標を持つ三角形を描く。(※正三角形である必要はない)
    頂点A: (x1,y1) ※ プログラムでは (0, 5)
    頂点B: (x2,y2) ※ プログラムでは(5. 0)
    頂点C: (x3,y3) ※ プログラムでは(-5, 0)

  2. 三角形の内部の任意の点P(x,y)を最初の点とする。(どこか内部に点をうちPとする)
    ※ プログラムでは、 (2.5, 2.5)

  3. 頂点A,B,Cのうち 1つをランダムに選ぶ(1/3の確率)
    ※ プログラムでは、n=randrange(3))

  4. Pと選んだ頂点1の中点に点を描き、それを新しい点Pとする
    ※ x=(x+a[n])/2 と y=(y+b[n])/2 と pltの処理

  5. 3に戻る

投稿2022/06/08 02:02

TakaiY

総合スコア14545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minideka

2022/06/08 05:23 編集

ご回答ありがとうございます。確かに仰る通り幾何学的な絵はプログラムじゃなくても書くことはできますね。。 シェルピンスキーの三角形の解説、誠にありがとうございます。なんとなく理解できました。(理解力低くてすみません) サイトに載っているソースコードも1行ずつ見てみたいと思います。 最初はプログラミングにこだわらずに絵を描いてみるのもとても良いご提案だと思いました。参考にさせて頂きます。ほんとにありがとうございます。
guest

0

とりとめのない回答ですが。

この分野は数学の一部だと私は思っているので「数学を理解するのに数学の知識がないと無理でしょうか」という質問に見えてしまいます。

とはいっても、シェルピンスキーの三角形は明らかに算数のレベルだし、バーンスレーのシダなどもコード的には算数にとどまっているはずので、これがわからないということは、足りないのは数学の知識ではなくプログラミングの知識なのでは? と感じます。

例えば Scratchで楽しく学ぶアート&サイエンス など、Scratchで書くんだから平易なのでは? と思うでしょうが、この本には普通に三角関数がでてきます。

一方で、例えばパーリンノイズを計算を自分でしようと思ったらまあまあの数学が要るわけですが、processingにはnosie関数があって呼び出すだけで計算できます。自分で計算しなくてもいいというだけでぐっと楽なはずです。それでも「パーリンノイズとはなにでどういう性質があるか?」という知識は要るわけで、それを"数学の知識"と呼んでも差し支えはないと考えます。

投稿2022/06/08 00:11

quickquip

総合スコア11327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minideka

2022/06/08 05:40 編集

回答ありがとうございます。 恥ずかしながらシェルピンスキーの三角形が理解できてなかったのと pythonのプログラムがちゃんと読めていないのもありました。再度ちゃんと確認してみたいと思います。 processing アートで調べたら色々と出てきました。難しそうですが面白そうなので勉強してみたいと思います。 参考書なども教えてくださりありがとうございます。
guest

0

数学を使って出しているものなんですから、その知識は必須となります。

まあ、どこかに載っているものをそのまま出す、というだけなら、その知識は不要でしょうけど。

投稿2022/06/07 22:55

y_waiwai

総合スコア88180

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/06/09 06:21 編集

数学の知識がなくても、タートルグラフィックを使って適当に亀を動かすだけで、様々な図形が描けます。 https://docs.python.org/ja/3/library/turtle.html 一般に数学は多くの場所で使われていますが、それを使うユーザーに必ずしも数学の知識が必要とは限りません。 この質問の目的はデジタルアートで、それを実現するために質問者がみつけた一つの方法が数学の知識が必要なものであったというだけです。
minideka

2022/06/08 06:50 編集

ご回答ありがとうございます。 やっぱりそうですよね。教えてくださりありがとうございます。
Zuishin

2022/06/08 07:21

間違った回答に高評価が入っているため低評価します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問