プログラミングのお題スレ Part18

■ このスレッドは過去ログ倉庫に格納されています
2020/07/14(火) 13:53:46.47ID:jW5p6F/e
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part17
https://mevius.5ch.net/test/read.cgi/tech/1584031367/
2020/07/16(木) 22:09:47.34ID:Tv2xtriA
スマートな方法は軍事秘密なんだよ


(方程式を使う)
2020/07/16(木) 22:28:50.69ID:Zj8FcZKn
簡単な二次方程式になるわけだけど
2020/07/16(木) 22:32:18.70ID:Tv2xtriA
昔はモンキーハンティングとかのシミュレーションやったよ
2020/07/16(木) 22:34:22.52ID:Zj8FcZKn
頭悪い方法で?
2020/07/16(木) 22:35:58.48ID:Zj8FcZKn
>>22から頭の悪さがにじみ出てる
2020/07/16(木) 22:36:41.77ID:Rw1l0Cvs
頭悪いのがにじみ出てて読んでてイライラする
2020/07/16(木) 22:37:12.00ID:Tv2xtriA
他に剛体球の衝突とか、太陽系の表示とか、万有引力とか。
2020/07/16(木) 23:19:59.45ID:Tv2xtriA
高校レベルの数学でごめんね.

v:ミサイルの速さ。
d:ミサイルの方向ベクトル。
t: 時刻。
P: 物体の現在位置。
V: 物体の推定速度。
方程式v*d*t==P+V*t.
移項して
(v*d - V)*t==P.
t==P・(v*d - V)/||v*d - V||**2.
33デフォルトの名無しさん
垢版 |
2020/07/17(金) 04:33:22.78ID:MbWzFU1J
>>17
訂正

まず、0〜2*πのsin関数表を作成する
その後、
x_hat>=0 の場合: x_hat%(2*π)
x_hat<0の場合: 2*π + x_hat%(-2*π)
という式でx_hatを変換して上書きする
2020/07/17(金) 06:25:20.74ID:CFzyXZw3
>>32
本当頭悪いね
それでどうやって解くつもり?
高校生ならもっとスマートに解く
2020/07/17(金) 08:57:31.48ID:ICqzduEx
解答側だと頭悪いと煽られるから出題側に回ってたわけか
まあ出題も頭悪そうだったが
2020/07/17(金) 09:13:31.04ID:TqoFz7RF
回答例用意してなくても出題していいと思う
でもニッチすぎる問題で知識ひけらかしてるみたいな出題は例出してくれ
2020/07/17(金) 10:03:37.90ID:+x+SJT9l
P + V*t==v*d*t.
二乗すればdが消えて
|P|**2 + 2*P・V*t + |V|**2*t**2 == (v*t)**2.
これはtの二次方程式であるから整理して解の公式で解ける。
t<0のときは過去になるので除外する。
2020/07/17(金) 10:05:01.15ID:2gsvlStU
>>1 スレ一覧

1: https://toro.5ch.net/test/read.cgi/tech/1354393458/
2: https://toro.5ch.net/test/read.cgi/tech/1357191974/
3: https://peace.5ch.net/test/read.cgi/tech/1390525149/
4: https://peace.5ch.net/test/read.cgi/tech/1402622093/
5: https://peace.5ch.net/test/read.cgi/tech/1411227287/
6: https://peace.5ch.net/test/read.cgi/tech/1418278634/
7: https://peace.5ch.net/test/read.cgi/tech/1429195275/
8: http://echo.5ch.net/test/read.cgi/tech/1444216746/
9: https://mevius.5ch.net/test/read.cgi/tech/1480579110/
10: https://mevius.5ch.net/test/read.cgi/tech/1514772904/
11: https://mevius.5ch.net/test/read.cgi/tech/1524570314/
12: https://mevius.5ch.net/test/read.cgi/tech/1538096947/
13: https://mevius.5ch.net/test/read.cgi/tech/1549160513/
14: https://mevius.5ch.net/test/read.cgi/tech/1558168409/
15: https://mevius.5ch.net/test/read.cgi/tech/1564310397/
16: https://mevius.5ch.net/test/read.cgi/tech/1573948822/
17: https://mevius.5ch.net/test/read.cgi/tech/1584031367/
2020/07/17(金) 10:57:50.39ID:IMrokyul
>>37
えらい時間がかかったね
君、出題者だよね?
2020/07/17(金) 11:00:53.76ID:+x+SJT9l
三次元タートルで臓器を描画したら、レオナルド・ダ・ヴィンチのような天才になれるかもよ。
今、3Dプリンタのブームで三次元タートルグラフィックスは需要があるから、面白いことになるよ。
2020/07/17(金) 11:24:00.61ID:+x+SJT9l
臓器売買をなくすには、臓器を作ればいい。
ふふん。
2020/07/17(金) 11:55:47.46ID:vGVdpt19
>>37
で、5個の物体の
2020/07/17(金) 11:56:18.93ID:vGVdpt19
区別はどうするの?
2020/07/17(金) 12:50:28.20ID:+x+SJT9l
レーダー角の順番に物体をソートし、各物体に番号を付ける。レーダー角において物体が重なれば重複する恐れがあるが、とくに問題ではない。重複した物体が離れたときに、新規の物体の出現と見なせばいい。

前回と前々回の観測により、位置と速度が推測できる。次に予想される出現位置に一番近い物体を選択し、番号を関連付ければ同定できる。
45デフォルトの名無しさん
垢版 |
2020/07/17(金) 13:19:51.15ID:MbWzFU1J
>>36
チューリングマシンは現場でバリバリ使える調べて覚えるだけの価値がある技術だ
規則が連続している場合上の方を取ってくるとか2つの数値を比較して大小関係をルールにするといったことが出来る
正規表現で数値を取ってきてプログラミング言語で比較処理するより構造的に書ける
だから解答を用意した上でまずは簡単なお題から出して、次は少し難易度を上げるようなお題を考えながら待っていたが誰も解答しなかった
2020/07/17(金) 13:33:42.70ID:TqoFz7RF
>>45
どの言語でも使えるアルゴリズム?設計パターンなの?
理論だから賞味期限の長い知識なのはわかるけど優先的に教えられないのはなぜ?
2020/07/17(金) 13:35:45.21ID:vGVdpt19
>>44
各フレーム物体がランダム位置で出現する場合には使えません
2020/07/17(金) 13:37:37.60ID:vGVdpt19
>>45
チューリングマシンの実用性はゼロと思うけど
完全に学問用
2020/07/17(金) 13:40:10.41ID:Jbjf6afq
CFGのクラスのものを例題にしたから意図したような回答がなかったんじゃないかと
50デフォルトの名無しさん
垢版 |
2020/07/17(金) 14:08:20.12ID:x8K2tEcw
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

☆ VMを書いた(C#) * x86ではない!
ttp://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
2020/07/17(金) 14:59:38.30ID:+x+SJT9l
>>47
UFOじゃあるまいし、そんな物体が地球上にあるわけない。
2020/07/17(金) 15:18:45.55ID:+x+SJT9l
ステルス機とか、超音速機とか、プラズマ兵器とかのことか。

それらは想定外だよ。
2020/07/17(金) 15:23:09.49ID:+x+SJT9l
プラズマ兵器は、実戦で使われた記録はないし、超音速でもレーダー網からは捕捉出来る。

ステルスは想定外。
2020/07/17(金) 16:57:04.24ID:+x+SJT9l
防衛システムの歯無しは終わり。

次は三次元タートルグラフィックス。位置と向きの情報を持ったタートル(亀)を操作して、面白い図形を描こうというお話。平面じゃないよ、立体だよ。

レンダリングを何にするか。OpenGLは終わったし、DirectDrawは初心者には難しいし。そうだ、JavaScriptのThree.jsにしよう。これならスマホでも確認できるね。使ったことないけど。
2020/07/17(金) 17:49:54.25ID:vGVdpt19
>>51
出題文を読みかえしてみろ
2020/07/17(金) 17:51:07.65ID:vGVdpt19
ランダムに動く物体5個
2020/07/17(金) 18:31:00.92ID:+x+SJT9l
さて、亀は三次元の座標データP=(x, y, z)と三次元の方向ベクトルD=(dx, dy, dz) (単位ベクトルとする)で表せる訳だが、
線分を一つ引くごとに、線分を指定した位置に世界に追加する。世界の観測者の視点であるカメラは、テキトーな位置と方向で設置しておく。
描画ルーチンは、世界に追加された線分群をまとめて描く。描画エンジンは遠近法により、奥行きを持った映像を完成する。
2020/07/17(金) 18:35:56.95ID:+x+SJT9l
小さなお題: Three.jsで三次元空間に線分を一本描画せよ。
59デフォルトの名無しさん
垢版 |
2020/07/17(金) 20:07:34.26ID:Q6g2SqxJ
だめだ
何をいっているのだか私にはさっぱり
2020/07/17(金) 20:36:03.22ID:RwfCcdVI
>>59
NGワードに糞コテを登録すればOKということだけ理解してれば大丈夫。
2020/07/17(金) 20:39:05.23ID:zSX7HXP2
>>60
NGワードなんてスルー能力の足りない人が使うものですよ、私は全然使いませんね、だって必要ないし…
2020/07/17(金) 21:03:37.05ID:CFzyXZw3
クソコテスレ
2020/07/17(金) 21:18:41.06ID:hZ0JaeyU
こんな感じでHTMLを書けばThree.jsで三角形が描ける。
https://gist.github.com/katahiromz/cc182b4aaeaf2c7b5902238212c0f3f1
2020/07/17(金) 21:29:05.44ID:hZ0JaeyU
これを応用すれば、スマホでも動作するブラウザゲームを自分で作って
ゲーム会社を立ち上げることができるかも。

Three.jsがどんなものかは、

https://threejs.org/

を見ればたぶんわかる。三次元を描画するものだ。
2020/07/17(金) 21:32:26.43ID:C5ummCR0
スレタイからずれすぎ
2020/07/18(土) 00:01:47.57ID:tp8HW1uL
ついに蟻人間は、3次元まで行ってしまったか

その内、Quaternion(4元数)がどうたらこうたらと、言い出しかねないw
2020/07/18(土) 00:03:54.77ID:wH8oKg8v
>>58
分かり難いけど、描けました。
https://i.imgur.com/XZgoOTV.gif
P0(0,0,0)-P1(100,100,100)です。

//形状オブジェクトの宣言と生成
var geometry3 = new THREE.Geometry();

geometry3.vertices.push( new THREE.Vector3(0, 0, 0) );

geometry3.vertices.push( new THREE.Vector3(100, 100, 100) );

//材質オブジェクトの宣言と生成
var material3 = new THREE.LineBasicMaterial({ color: 0xFFFFFF, transparent:true,
linewidth: 8,
opacity:0.5 });
//線オブジェクトの生成
lines = new THREE.LineSegments(geometry3, material3);
//線オブジェクトのシーンへの追加
scene.add(lines);
2020/07/18(土) 06:18:45.66ID:yeg1h1ii
お題:何らかの数式のグラフとしてハート形を出力せよ。
使用する言語は問わない。
2020/07/18(土) 10:23:44.89ID:Z+cMIoZ7
>>68
HTML5,JavaScript
<canvas id="cv" width="360" height="360"></canvas>
<script>
var ctx = document.getElementById("cv").getContext("2d");
ctx.lineWidth = 5; //線の太さ
ctx.strokeStyle = "red";
ctx.beginPath();
var r=10;var x0=0,y0=0;

for(i=0;i<=360;i+=5){

var d = i*Math.PI/180;

x0= r*(16*Math.sin(d)*Math.sin(d)*Math.sin(d));
y0= r*(13*Math.cos(d)-5*Math.cos(2*d)-2*Math.cos(3*d)-Math.cos(4*d));
ctx.lineTo(w+x0,h-y0);
}

ctx.stroke();
</script>

https://i.imgur.com/9tjfBmv.png
70デフォルトの名無しさん
垢版 |
2020/07/18(土) 10:47:53.29ID:zLRZfcZE
>>68 Lua
for y=1.5,-1.5,-0.1 do
for x=-2,2,0.1 do
if (x^2+y^2-1)^3-x^2*y^3<0 then
io.write("@@")
else
io.write("__")
end
end
print()
end
2020/07/18(土) 10:50:14.98ID:dRuMQkW5
>>45
出題が糞過ぎたから誰も答えなかったんだぞ
2020/07/18(土) 11:55:01.11ID:n7a2F8Nj
>>45
このスレでは誰もお題に答えないということがよくある
俺もお題出したことがあるがそういう時があった
2020/07/18(土) 12:04:26.22ID:Z+cMIoZ7
>>68
❤♡🤎🧡🤍🖤❤❣💟💜💚💛💙💗
&hearts; &#9825; &#10084;
2020/07/18(土) 12:35:48.94ID:xMoPei8m
>>69
きれい
75デフォルトの名無しさん
垢版 |
2020/07/18(土) 12:41:40.41ID:55gPHPOJ
>>71
どこらへんが問題なのかを言わないと次も同じ問題を起こす可能性がある
76デフォルトの名無しさん
垢版 |
2020/07/18(土) 12:45:26.81ID:55gPHPOJ
すぐに論破されることを言う奴って何が目的なんだろう
5chを見下してるのかもしれないな
こんなサイトみてる奴は大したことないって思ってるから油断して非論理的な発言をするのかと思った
2020/07/18(土) 13:00:12.87ID:Gf2oPXpD
どこに問題があるかなんて前スレでさんざん言われてただろ
あれで理解できないなら一生理解できないだろうね
2020/07/18(土) 13:01:12.49ID:n7a2F8Nj
>>75
たぶん問題が難しいか、手間がかかるからじゃないかな
79デフォルトの名無しさん
垢版 |
2020/07/18(土) 13:06:42.15ID:55gPHPOJ
>>77
指摘された問題点はすべて返信していてその返信に対する返信はない
つまり指摘された問題点はすべて間違っていて問題点は見つかっていない
>>78
Pythonで20行弱で書けることは伝えている
となると難易度がこのスレの住人には高すぎたということか...
80デフォルトの名無しさん
垢版 |
2020/07/18(土) 13:09:37.97ID:LD7t+FRX
イキり臭ただようコメントですね
81デフォルトの名無しさん
垢版 |
2020/07/18(土) 13:14:16.81ID:LD7t+FRX
問題の良し悪しよりも出題者の態度が気に入らないから取り組まない人がいるんじゃないかな
自分の正当性を主張するだけではダメで回答者のモチベーションを上げる方向に導かないと
コミュニケーションが未熟なだけだと思いました
82デフォルトの名無しさん
垢版 |
2020/07/18(土) 13:17:55.61ID:LD7t+FRX
線形拘束オートマトンでこの問題解いてみて!
線形拘束オートマトンはこういう仕組みで、こういうところでも活用できるから知ってると便利だよ!
みたいにポジティブアゲアゲでいかないと
83デフォルトの名無しさん
垢版 |
2020/07/18(土) 13:20:22.31ID:55gPHPOJ
>>81
なるほどーそれは>>1に書いとくべきだな
皆んなから好かれる人の出題しか解答しませんよって
出題にも手間がかかるわけだからそういうのは普通に不誠実だと思う
2020/07/18(土) 13:21:40.49ID:n7a2F8Nj
>>83
落ち着けよ
お題に解答が全く付かないなんてよくあることだって
85デフォルトの名無しさん
垢版 |
2020/07/18(土) 13:23:11.61ID:55gPHPOJ
>>82
仕組みというか解説は書けるなら書きたかったな
悩んだがそんなに難しくないと思ったから止めといた
86デフォルトの名無しさん
垢版 |
2020/07/18(土) 14:02:48.54ID:LD7t+FRX
>>83
ルールとして決める必要はなくて
一般的なコミュニケーションのとり方としてレスポンスが欲しいなら
自分の正当性だけを主張するやり方だと難しいよってこと
自分がこんなに頑張って問題書いたんだ、答えがないのは不誠実だ、そんな自己中発揮してたらレスポンスなくて当然かと
87デフォルトの名無しさん
垢版 |
2020/07/18(土) 14:06:16.09ID:LD7t+FRX
線形拘束オートマトンが実装できるってすごいことだから
模範解答示したら良いと思うよ
2020/07/18(土) 14:14:52.95ID:ICGznoJS
>>83
難度がうんぬんよりも問題文読んだ時点で作問者の頭が悪そう(使ってる言葉の意味わかってなさそう)って思ってスルーしたわ
ここのコテハンも同じ理由でスルー
ただ、面白そうなら気まぐれで解くこともある
解く方も出す方も好きにしたら良い
89デフォルトの名無しさん
垢版 |
2020/07/18(土) 14:36:05.17ID:55gPHPOJ
>>86
答えがないから不誠実なのではなくて
出題者に伝えておくべき情報が>>1に書かれていないのならそれは不誠実ということ

>>71は次のように言っている
「皆んながお前の出題に問題があると思っている」
俺は今後のためにも当然次の疑問が生まれ、それを伝えた「どこらへんが?難易度が高すぎた?」
そこで君が「難易度よりむしろマナーに問題がある」という趣旨の発言をした
そうなると俺は「>>1にマナーの具体的な内容を書くべき」
そうしないと同じ問題を起こしてしまうから
90デフォルトの名無しさん
垢版 |
2020/07/18(土) 14:41:12.58ID:LD7t+FRX
>>89
ルールとして書くまでもなく一般的なコミュニケーションのことだから
>>1に書かれてなくても良いし、それが無いがゆえにできなかったのだという
態度が自己中ってこと
91デフォルトの名無しさん
垢版 |
2020/07/18(土) 14:42:30.19ID:LD7t+FRX
問題を起こしてしまうの主語は君がってことだよね? 君がコミュニケーション能力を身につければ解決すると思うのだけれども
2020/07/18(土) 14:42:36.88ID:vTEAacne
解いてみたいと思えない内容の上に長文でうざい
っていう感情論に近いものを明文化すんのはちょっと難しいね
93デフォルトの名無しさん
垢版 |
2020/07/18(土) 14:50:16.06ID:LD7t+FRX
客観的に難易度は高いと思うよ
少なくとも僕は実装したこと無い
有限オートマトンが精一杯

自分で「難易度がこのスレの住人には高すぎたということか」と言ってしまうのはイキりだと思った
難易度+高慢な態度 ってところかと
2020/07/18(土) 15:08:41.26ID:n7a2F8Nj
あるいは進行形で解いてるやつがいるかもしれないな
なんたってこのスレの最長解答時間は3ヵ月だからなw
95デフォルトの名無しさん
垢版 |
2020/07/18(土) 15:10:20.71ID:LD7t+FRX
レーダーのお題でしょ、あれは感動した
96デフォルトの名無しさん
垢版 |
2020/07/18(土) 15:12:42.37ID:LD7t+FRX
チューリングマシンのお題は、僕も解いて見ようと思ってWikipedia読んでる
97デフォルトの名無しさん
垢版 |
2020/07/18(土) 15:13:54.80ID:LD7t+FRX
最高のチューリングマシンを見せてやるぜ、必ず帰ってくるからな、帰ったら結婚しよう
2020/07/18(土) 15:20:47.20ID:n7a2F8Nj
死亡フラグね
2020/07/18(土) 15:29:31.73ID:Bt+NBO6d
>>83
気に入らない奴は相手にされないなんて、人と人とのコミュニケーションが発生する場所なら何処でもそうだろう。仕事などの個人の感情よりやるべきことを優先すべき場面を除いては。
書かれてないから知らないなんて、小学生の屁理屈にも劣る反応だな。
100デフォルトの名無しさん
垢版 |
2020/07/18(土) 15:34:22.37ID:55gPHPOJ
新しいことを学ぶのは素晴らしいと思うけど今まで2週間以上同じスレに居たことがないから責任持てないなぁ
現場でバリバリ使う為にはε-非決定性オートマトンとかも知っとかないと実用的じゃなくなるから学習に意味を見いだすのはかなり難しいと思うよ
2020/07/18(土) 15:41:54.65ID:KIRMqycZ
>>100
非決定オートマトンを決定性オートマトンにする、とかいうお題は、やっぱりマニアックすぎますかね?
今そういう本をよんでポチポチコードを書いているので、需要があるようなら出題&採点してもいいかなって思ってます
102デフォルトの名無しさん
垢版 |
2020/07/18(土) 15:47:29.51ID:55gPHPOJ
>>101
需要があるかは分からないけどとてもいいと思うよ
2020/07/18(土) 15:58:37.25ID:n7a2F8Nj
>>102
いなくなるかもしれないなら解答例貼っておいてよ
104デフォルトの名無しさん
垢版 |
2020/07/18(土) 16:51:46.46ID:2TKjWEFt
sedでいいんじゃね
105デフォルトの名無しさん
垢版 |
2020/07/18(土) 18:01:09.47ID:k5pKf1DO
>>81
まあしかし何かが出題されたら必ず誰かが解かねばならないわけでもないしな。義務は何もないからこうでなければいけないという事もない。
10669
垢版 |
2020/07/18(土) 19:43:00.59ID:BZh66Ti/
>>74
ありがとう❣、チャレンジして良かったよ!
出題者からはなんの評価も解説もされないので
そういう反応が返って来ると嬉しい。
また、次のモチベーションに繋がる。

教科書とか勉強中のコラムとかコーヒーブレイクみたいな
息抜き程度の頭の体操になるような手軽なお題の方が答えやすいね。
結局は出題者も回答者も自己満足でしか無いから、
初級〜中級者向けくらいが丁度良いかも?
2020/07/18(土) 20:06:14.32ID:tp8HW1uL
>>69
こういうコードを見ると、jagarikin の「スーパー鳥スロット」を思い出すw

画像ファイルが1つもなく、こういうコードばっかりだったw
2020/07/18(土) 20:44:45.69ID:naIVYT0v
>>107
コードのキレイさなら>>70かもしれませんが
お題はコードを出力するのではなくハート形を出力せよとのことでしたから
初心者がチャレンジしたコードなのでスマートな書き方でないのは御勘弁下さいorz
10968
垢版 |
2020/07/18(土) 21:39:17.47ID:yeg1h1ii
いろんな回答を見たかったので早期の論評は控えてました。
>>69の出力は出題者もきれいだなって思います。
想定していたコードはどちらかいうと>>70に近くて
http://codepad.org/ICpm3J6j
こんな感じの簡単な式(x^2+y^2<100-|x|y)でも充分かなと思ってました。

ハート形を生成できる式はいくつか知られているので、バリエーションを探ってみるのはいいかなと思います。
2020/07/19(日) 13:58:11.60ID:GV3E92FC
(1) https://gist.github.com/katahiromz/694763e2060d4a004452875bebc04ee3
二次元タートルグラフィックスで八角形を描けたよ。

お題: (1)と(2)のリンクを参考にコッホ曲線を描画せよ。

(2) http://www.f.waseda.jp/sakas/java/JavaGraphicsSample.html
2020/07/19(日) 14:05:25.72ID:GV3E92FC
>>110 答え:
function koch(degree, step) {
  if (degree == 0) {
    walk(step);
  } else {
    koch(degree - 1, step/3);
    turn_angle(60);
    koch(degree - 1, step/3);
    turn_angle(-120);
    koch(degree - 1, step/3);
    turn_angle(60);
    koch(degree - 1, step/3);
  }
}
function draw() {
  set_pos(0, 0, 0);
  set_dir(100, 0, 0);
  koch(5, 75);
}
2020/07/19(日) 14:45:30.46ID:GV3E92FC
小さなお題: >>110 の(1)のturn_dir関数とturn_angle関数を3次元に拡張し、
3次元タートルグラフィックスを可能にせよ。

ただし、turn_dirの引数は長さ1の方向ベクトルとし、turn_angleの引数は角度とする。
turn_dirは、引数dzが0のとき、変更前と同じ動作にせよ。
また、turn_angleの引数にもう一つの角度を追加し、追加した角度がゼロのとき、
変更前と同じ動作にせよ。

ヒント:四元数
2020/07/19(日) 14:48:01.51ID:EiEVeWaP


66 名前:デフォルトの名無しさん[sage] 投稿日:2020/07/18(土) 00:01:47.57 ID:tp8HW1uL [1/2]
ついに蟻人間は、3次元まで行ってしまったか

その内、Quaternion(4元数)がどうたらこうたらと、言い出しかねないw
2020/07/19(日) 21:17:44.37ID:T8vbWyFG
さて、解けた者は挙手したまえ。
2020/07/19(日) 21:45:13.46ID:h5vFOzT4
頭が悪いことがばれたからって
必死に数学の知識を見せようと頑張ってる

でも頭の悪さが随所に滲み出てる
自覚のないアホ
2020/07/19(日) 21:56:49.40ID:GV3E92FC
>>115 数学出来るなら手伝ってくれよ。。。これから面白くなるから。

function turn_angle(angle1, angle2) {
// x-y平面上のangle1度の方向ベクトル(dx, dy)。
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);

// (dx, dy, 0)をx軸を中心にangle2度回転したものを(dx, dy, dz)とする。
...(ここに何か書く)...

// 実際に回転させる。
turn_dir(dx, dy, dz);
}
2020/07/19(日) 21:57:24.56ID:5kiTFqsE
誰もイキらずに淡々と問題と答えのレスだけ並んでく雰囲気は良さを感じたけど
やっぱクソコテって怖いな
2020/07/19(日) 22:06:51.03ID:GV3E92FC
>>116
dz = dy * Math.sin(angle2 * Math.PI / 180);
dy *= Math.cos(angle2 * Math.PI / 180);

次は、三次元のturn_dirね。数学、スゴクデキルんでしょ?
2020/07/19(日) 22:12:10.73ID:GV3E92FC
お題: JavaScript
function turn_dir(dx, dy, dz) {
// (dx, dy, dz)は長さ1の方向ベクトル。
// 長さ1の方向ベクトル(turtle_dx, turtle_dy, turtle_dz)を(dx, dy, dz)だけ回転させる。
...(ここに何か書く)...
}
2020/07/19(日) 22:16:20.98ID:GV3E92FC
♪はい、コーディングいってみよー!

はいはいはい、はいはいはい!
2020/07/19(日) 23:32:08.26ID:T8vbWyFG
俺はそういう悪評トリックに引っ掛からないよ。間違いは的確に指摘頂きたい。
2020/07/20(月) 06:57:18.16ID:P7t0RBc6
>>110-121
(1)のソースにオービットコントロールを付けると楽しいですよ。

<!-- OrbitControls.jsファイルソース読込 -->
<script src="./three.js-master/examples/js/controls/OrbitControls.js"></script>

//controls変数宣言追加
var scene, renderer, camera, controls;

function init() {//イニシャライズの
・・・
camera.lookAt(0, 0, 0);

//controlsインスタンス生成してカメラとレンダラー渡すだけ
controls = new THREE.OrbitControls( camera, renderer.domElement );

scene = new THREE.Scene();

//ついでに座標軸表示もおすすめ
scene.add( new THREE.AxisHelper(50) );

}
https://i.imgur.com/uFIgx6x.png
2020/07/20(月) 07:42:33.17ID:ozWDjdlg
>>118
やってみたよ
function turn_angle(angle1, angle2) {
if( !angle2 || angle2==0){
turn_dir(Math.cos(angle1 * Math.PI / 180), Math.sin(angle1 * Math.PI / 180), 0);
}else{
// x-y平面上のangle1度の方向ベクトル(dx, dy)。
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);

// (dx, dy, 0)をx軸を中心にangle2度回転したものを(dx, dy, dz)とする。
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_dz = dz;
// 実際に回転させる。
turn_dir(dx, dy, dz);
}

}
function draw() {
set_pos(0, 0, 0);
set_dir(0, 100, 0);
for (var i = 0; i < 18; ++i) {
walk(15);
//turn_angle(45);
turn_angle(45, 20);
}
}
https://i.imgur.com/CdQvIDR.png

https://i.imgur.com/G4HUVBh.png
2020/07/20(月) 15:09:49.43ID:rHNryQzp
傾けた木が平面にならない。
https://github.com/katahiromz/3D
(4) https://github.com/katahiromz/3D/blob/master/4.html
https://twitter.com/katahiromz/status/1285093638557466624/photo/1
何でだろ。

https://github.com/katahiromz/3D からダウンロードして下さい。
お題: (4) を修正して木が平面になるようにせよ。
https://twitter.com/5chan_nel (5ch newer account)
125デフォルトの名無しさん
垢版 |
2020/07/20(月) 16:08:13.13ID:UHinuGOV
お題じゃなくて作成依頼ですか?w
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況