質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

1回答

726閲覧

Processingのサンプルコードの改良し、軌跡を描きたいのですが分かりません

atamakanji

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2022/12/15 13:18

前提

Processingにて、どれだけ調べてもコードがわからず完全に手詰まりになりました。
サンプルコードの「Exercise_3_02_cannon」を改良して、発射された球に線の軌跡が出るようにしたいです。

実現したいこと

・発射された球に軌跡が線で出るようにする。

発生している問題・エラーメッセージ

色々とネットなどで調べてはみたのですが、該当しそうな情報がなく、完全に手づまりな状況です

該当のソースコード①

Javascript

1float angle = -PI/4; 2PVector position = new PVector(50, 300); 3boolean shot = false; 4 5CannonBall ball; 6 7void setup() { 8 size(640, 360); 9 ball = new CannonBall(position.x, position.y); 10} 11 12void draw() { 13 background(255); 14 15 pushMatrix(); 16 translate(position.x, position.y); 17 rotate(angle); 18 rect(0, -5, 50, 10); 19 popMatrix(); 20 21 if (shot) { 22 PVector gravity = new PVector(0, 0.2); 23 ball.applyForce(gravity); 24 ball.update(); 25 } 26 ball.display(); 27 28 if (ball.position.y > height) { 29 ball = new CannonBall(position.x, position.y); 30 shot = false; 31 } 32} 33 34void keyPressed() { 35 if (key == CODED && keyCode == RIGHT) { 36 angle += 0.1; 37 } 38 else if (key == CODED && keyCode == LEFT) { 39 angle -= 0.1; 40 } 41 else if (key == ' ') { 42 shot = true; 43 PVector force = PVector.fromAngle(angle); 44 force.mult(10); 45 ball.applyForce(force); 46 } 47}

該当のソースコード②

Javascript

1class CannonBall { 2 // All of our regular motion stuff 3 PVector position; 4 PVector velocity; 5 PVector acceleration; 6 7 // Size 8 float r = 8; 9 10 float topspeed = 10; 11 12 CannonBall(float x, float y) { 13 position = new PVector(x,y); 14 velocity = new PVector(); 15 acceleration = new PVector(); 16 } 17 18 // Standard Euler integration 19 void update() { 20 velocity.add(acceleration); 21 velocity.limit(topspeed); 22 position.add(velocity); 23 acceleration.mult(0); 24 } 25 26 void applyForce(PVector force) { 27 acceleration.add(force); 28 } 29 30 31 void display() { 32 stroke(0); 33 strokeWeight(2); 34 pushMatrix(); 35 translate(position.x,position.y); 36 ellipse(0,0,r*2,r*2); 37 popMatrix(); 38 } 39}

試したこと

どこから変更すればよいのかわからなくて完全に困っています。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

TN8001

2022/12/15 15:18

ProcessingはJavaScriptも使用できますが、提示コードはJavaScriptではありません。 「JavaScript」タグは外してください。 つけるのであれば「Java」タグです。
guest

回答1

0

サンプルコードの「Exercise_3_02_cannon」

The Nature of Code」あるいはその翻訳本ですね?
The Nature of Code - Google 検索

noc-examples-processing/chp03_oscillation/Exercise_3_02_cannon at master · nature-of-code/noc-examples-processing

出典ははっきり明示してください。
もしコード先頭にクレジット表記があるなら外さないでください。

・発射された球に軌跡が線で出るようにする。

例えばbackground(255)をやめるだけで前の描画が残るため連続写真?のようになりますが、そういうことでいいんでしょうか?

Processing

1void draw() { 2 //background(255);

あるいは残像を残すようなテクニックがあります。
これはNOC_1_2_bouncingball_vectorsで使われています。
nature-of-code/noc-examples-processing: Repository for example code from The Nature of Code book

Processing

1void draw() { 2 //background(255); 3 fill(255, 10); 4 rect(0, 0, width, height);

色々とネットなどで調べてはみたのですが、該当しそうな情報がなく、完全に手づまりな状況です

どういうキーワードで検索していますか?
Processing 軌跡 - Google 検索


それとも軌跡が「線で出る」というところが重要ですか?

その瞬間の弾の位置はわかってるので、ArrayList<PVector>にため込んでいく感じでしょうか。
ArrayList of objects / Examples / Processing.org

投稿2022/12/15 15:20

TN8001

総合スコア9317

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問