プログラミングのお題スレです。
【出題と回答例】
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/
プログラミングのお題スレ Part18
■ このスレッドは過去ログ倉庫に格納されています
2020/07/14(火) 13:53:46.47ID:jW5p6F/e
63蟻人間 ◆T6xkBnTXz7B0
2020/07/17(金) 21:18:41.06ID:hZ0JaeyU こんな感じでHTMLを書けばThree.jsで三角形が描ける。
https://gist.github.com/katahiromz/cc182b4aaeaf2c7b5902238212c0f3f1
https://gist.github.com/katahiromz/cc182b4aaeaf2c7b5902238212c0f3f1
64蟻人間 ◆T6xkBnTXz7B0
2020/07/17(金) 21:29:05.44ID:hZ0JaeyU これを応用すれば、スマホでも動作するブラウザゲームを自分で作って
ゲーム会社を立ち上げることができるかも。
Three.jsがどんなものかは、
https://threejs.org/
を見ればたぶんわかる。三次元を描画するものだ。
ゲーム会社を立ち上げることができるかも。
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
その内、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);
分かり難いけど、描けました。
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
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
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
2020/07/18(土) 12:04:26.22ID:Z+cMIoZ7
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を見下してるのかもしれないな
こんなサイトみてる奴は大したことないって思ってるから油断して非論理的な発言をするのかと思った
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:55gPHPOJ80デフォルトの名無しさん
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:55gPHPOJ2020/07/18(土) 13:21:40.49ID:n7a2F8Nj
85デフォルトの名無しさん
2020/07/18(土) 13:23:11.61ID:55gPHPOJ86デフォルトの名無しさん
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:55gPHPOJ90デフォルトの名無しさん
2020/07/18(土) 14:41:12.58ID:LD7t+FRX91デフォルトの名無しさん
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
なんたってこのスレの最長解答時間は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週間以上同じスレに居たことがないから責任持てないなぁ
現場でバリバリ使う為にはε-非決定性オートマトンとかも知っとかないと実用的じゃなくなるから学習に意味を見いだすのはかなり難しいと思うよ
現場でバリバリ使う為にはε-非決定性オートマトンとかも知っとかないと実用的じゃなくなるから学習に意味を見いだすのはかなり難しいと思うよ
>>100
非決定オートマトンを決定性オートマトンにする、とかいうお題は、やっぱりマニアックすぎますかね?
今そういう本をよんでポチポチコードを書いているので、需要があるようなら出題&採点してもいいかなって思ってます
非決定オートマトンを決定性オートマトンにする、とかいうお題は、やっぱりマニアックすぎますかね?
今そういう本をよんでポチポチコードを書いているので、需要があるようなら出題&採点してもいいかなって思ってます
102デフォルトの名無しさん
2020/07/18(土) 15:47:29.51ID:55gPHPOJ >>101
需要があるかは分からないけどとてもいいと思うよ
需要があるかは分からないけどとてもいいと思うよ
103デフォルトの名無しさん
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
ありがとう❣、チャレンジして良かったよ!
出題者からはなんの評価も解説もされないので
そういう反応が返って来ると嬉しい。
また、次のモチベーションに繋がる。
教科書とか勉強中のコラムとかコーヒーブレイクみたいな
息抜き程度の頭の体操になるような手軽なお題の方が答えやすいね。
結局は出題者も回答者も自己満足でしか無いから、
初級〜中級者向けくらいが丁度良いかも?
ありがとう❣、チャレンジして良かったよ!
出題者からはなんの評価も解説もされないので
そういう反応が返って来ると嬉しい。
また、次のモチベーションに繋がる。
教科書とか勉強中のコラムとかコーヒーブレイクみたいな
息抜き程度の頭の体操になるような手軽なお題の方が答えやすいね。
結局は出題者も回答者も自己満足でしか無いから、
初級〜中級者向けくらいが丁度良いかも?
107デフォルトの名無しさん
2020/07/18(土) 20:06:14.32ID:tp8HW1uL108デフォルトの名無しさん
2020/07/18(土) 20:44:45.69ID:naIVYT0v10968
2020/07/18(土) 21:39:17.47ID:yeg1h1ii いろんな回答を見たかったので早期の論評は控えてました。
>>69の出力は出題者もきれいだなって思います。
想定していたコードはどちらかいうと>>70に近くて
http://codepad.org/ICpm3J6j
こんな感じの簡単な式(x^2+y^2<100-|x|y)でも充分かなと思ってました。
ハート形を生成できる式はいくつか知られているので、バリエーションを探ってみるのはいいかなと思います。
>>69の出力は出題者もきれいだなって思います。
想定していたコードはどちらかいうと>>70に近くて
http://codepad.org/ICpm3J6j
こんな感じの簡単な式(x^2+y^2<100-|x|y)でも充分かなと思ってました。
ハート形を生成できる式はいくつか知られているので、バリエーションを探ってみるのはいいかなと思います。
110蟻人間 ◆T6xkBnTXz7B0
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
二次元タートルグラフィックスで八角形を描けたよ。
お題: (1)と(2)のリンクを参考にコッホ曲線を描画せよ。
(2) http://www.f.waseda.jp/sakas/java/JavaGraphicsSample.html
111蟻人間 ◆T6xkBnTXz7B0
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);
}
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);
}
112蟻人間 ◆T6xkBnTXz7B0
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の引数にもう一つの角度を追加し、追加した角度がゼロのとき、
変更前と同じ動作にせよ。
ヒント:四元数
3次元タートルグラフィックスを可能にせよ。
ただし、turn_dirの引数は長さ1の方向ベクトルとし、turn_angleの引数は角度とする。
turn_dirは、引数dzが0のとき、変更前と同じ動作にせよ。
また、turn_angleの引数にもう一つの角度を追加し、追加した角度がゼロのとき、
変更前と同じ動作にせよ。
ヒント:四元数
113デフォルトの名無しさん
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
66 名前:デフォルトの名無しさん[sage] 投稿日:2020/07/18(土) 00:01:47.57 ID:tp8HW1uL [1/2]
ついに蟻人間は、3次元まで行ってしまったか
その内、Quaternion(4元数)がどうたらこうたらと、言い出しかねないw
114蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 21:17:44.37ID:T8vbWyFG さて、解けた者は挙手したまえ。
115デフォルトの名無しさん
2020/07/19(日) 21:45:13.46ID:h5vFOzT4 頭が悪いことがばれたからって
必死に数学の知識を見せようと頑張ってる
でも頭の悪さが随所に滲み出てる
自覚のないアホ
必死に数学の知識を見せようと頑張ってる
でも頭の悪さが随所に滲み出てる
自覚のないアホ
116蟻人間 ◆T6xkBnTXz7B0
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);
}
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);
}
117デフォルトの名無しさん
2020/07/19(日) 21:57:24.56ID:5kiTFqsE 誰もイキらずに淡々と問題と答えのレスだけ並んでく雰囲気は良さを感じたけど
やっぱクソコテって怖いな
やっぱクソコテって怖いな
118蟻人間 ◆T6xkBnTXz7B0
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ね。数学、スゴクデキルんでしょ?
dz = dy * Math.sin(angle2 * Math.PI / 180);
dy *= Math.cos(angle2 * Math.PI / 180);
次は、三次元のturn_dirね。数学、スゴクデキルんでしょ?
119蟻人間 ◆T6xkBnTXz7B0
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)だけ回転させる。
...(ここに何か書く)...
}
function turn_dir(dx, dy, dz) {
// (dx, dy, dz)は長さ1の方向ベクトル。
// 長さ1の方向ベクトル(turtle_dx, turtle_dy, turtle_dz)を(dx, dy, dz)だけ回転させる。
...(ここに何か書く)...
}
120蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 22:16:20.98ID:GV3E92FC ♪はい、コーディングいってみよー!
はいはいはい、はいはいはい!
はいはいはい、はいはいはい!
121蟻人間 ◆T6xkBnTXz7B0
2020/07/19(日) 23:32:08.26ID:T8vbWyFG 俺はそういう悪評トリックに引っ掛からないよ。間違いは的確に指摘頂きたい。
122デフォルトの名無しさん
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
(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
123デフォルトの名無しさん
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
やってみたよ
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
124蟻人間 ◆T6xkBnTXz7B0
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)
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
126蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 16:16:33.54ID:6GFyBW1T こういうのは数学が鬼ズバできる猛者に任せたい所だが。。。
報酬は出しちゃいかんのか。
報酬は出しちゃいかんのか。
127デフォルトの名無しさん
2020/07/20(月) 17:25:48.10ID:uvZgkaZD 出ないならやらない
128デフォルトの名無しさん
2020/07/20(月) 17:58:58.92ID:8mFfSXNu いや、そういう猛者がいるところに依頼してこいよ
報酬出すんならランサーズとかにでも行ってこい
なんでここで話題にするんだ
報酬出すんならランサーズとかにでも行ってこい
なんでここで話題にするんだ
129デフォルトの名無しさん
2020/07/20(月) 17:59:50.36ID:8mFfSXNu そういう意味不明な言動を繰り返すから糞コテ呼ばわりされるって気付いて
130蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 18:37:44.48ID:rHNryQzp 寺へ行きました。すみません。
131デフォルトの名無しさん
2020/07/20(月) 23:40:32.05ID:5ka8Ymx5 >>124
なにこれ激重。1〜3はIEでも動くけど4はクロームでも少し時間かかる。
https://i.imgur.com/Kkti3xQ.gif
舞フレームごとに書き出してるんかな?
3Dオブジェクトコンテナにでも入れた方がいいのかな?
なにこれ激重。1〜3はIEでも動くけど4はクロームでも少し時間かかる。
https://i.imgur.com/Kkti3xQ.gif
舞フレームごとに書き出してるんかな?
3Dオブジェクトコンテナにでも入れた方がいいのかな?
132蟻人間 ◆T6xkBnTXz7B0
2020/07/20(月) 23:47:38.07ID:6GFyBW1T やろうとしてるのは、三次元フラクタルと臓器の実体化だから、超複雑な図形を再帰で描くことになる。再帰が多ければ確かに計算量は爆発するよ。
133デフォルトの名無しさん
2020/07/20(月) 23:52:17.88ID:/f9oEP+1 いい加減IE捨てろよ
134アンスタ7.2日目 ◆mqSs/N.hZs
2020/07/20(月) 23:54:27.58ID:5ka8Ymx5 >>124
https://i.imgur.com/Kkti3xQ.gif
タートルグラフィックスTreeの平面化
https://i.imgur.com/hNNvsE0.gif
3次元にしたいのか平面にしたいのかどっちなんだか。。。
変更箇所↓
function turn_angle(angle1, angle2=0) {
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
angle2 += turtle_spin;
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_z = dz;
turn_dir(dx, dy, dz);
}
function draw() {
//set_pos(0, 0, 0);
set_dir(0, 100, 0);
//koch(6, 50);
set_pos(0, 0, 0);
//set_dir(0, 100, 100);
tree(10, 40, 10);
}
https://i.imgur.com/Kkti3xQ.gif
タートルグラフィックスTreeの平面化
https://i.imgur.com/hNNvsE0.gif
3次元にしたいのか平面にしたいのかどっちなんだか。。。
変更箇所↓
function turn_angle(angle1, angle2=0) {
var dx = Math.cos(angle1 * Math.PI / 180);
var dy = Math.sin(angle1 * Math.PI / 180);
angle2 += turtle_spin;
var dz = dy * Math.sin(angle2 * Math.PI / 180);
//dy *= Math.cos(angle2 * Math.PI / 180);
turtle_z = dz;
turn_dir(dx, dy, dz);
}
function draw() {
//set_pos(0, 0, 0);
set_dir(0, 100, 0);
//koch(6, 50);
set_pos(0, 0, 0);
//set_dir(0, 100, 100);
tree(10, 40, 10);
}
135デフォルトの名無しさん
2020/07/20(月) 23:57:55.33ID:5ka8Ymx5 >>133
クロームより軽いから、捨てられなくて。。。
クロームより軽いから、捨てられなくて。。。
136蟻人間 ◆T6xkBnTXz7B0
2020/07/21(火) 00:03:34.18ID:iLwMnecK137デフォルトの名無しさん
2020/07/22(水) 22:25:22.87ID:ILXZvJ+B 「1+1は2じゃないぞ。オレたちは1+1で200だ!10倍だぞ10倍」
…が、なんとなく成り立っているように感じられるプログラムを作って発表せよ。
…が、なんとなく成り立っているように感じられるプログラムを作って発表せよ。
138デフォルトの名無しさん
2020/07/22(水) 22:30:15.48ID:IwIxQ1Ze お題: ランダムな整数が格納された長さNの配列から、偶数の要素のみを抜き出せ
Nは任意とする
Nは任意とする
139デフォルトの名無しさん
2020/07/22(水) 22:57:06.83ID:EawLE7Sy140デフォルトの名無しさん
2020/07/23(木) 00:07:39.47ID:DuCdQo+y >>137
面白いものができてしまったわ
class Integer
def +(other) 200 end
def /(other) 10 end
end
p "1+1は2じゃないぞ。オレたちは1+1で#{1 + 1}だ!#{rate = 200 / 2}倍だぞ#{rate}倍"
# => "1+1は2じゃないぞ。オレたちは1+1で200だ!10倍だぞ10倍"
https://repl.it/@vip0/override-plus-1#main.rb
面白いものができてしまったわ
class Integer
def +(other) 200 end
def /(other) 10 end
end
p "1+1は2じゃないぞ。オレたちは1+1で#{1 + 1}だ!#{rate = 200 / 2}倍だぞ#{rate}倍"
# => "1+1は2じゃないぞ。オレたちは1+1で200だ!10倍だぞ10倍"
https://repl.it/@vip0/override-plus-1#main.rb
141デフォルトの名無しさん
2020/07/23(木) 10:38:13.83ID:bJ7HfHNw142デフォルトの名無しさん
2020/07/23(木) 22:03:16.45ID:VBywRp49143デフォルトの名無しさん
2020/07/23(木) 23:12:54.26ID:QnunbgyT144デフォルトの名無しさん
2020/07/24(金) 00:24:32.57ID:F0SZWNxk145デフォルトの名無しさん
2020/07/24(金) 03:32:41.61ID:6ZonvnML146デフォルトの名無しさん
2020/07/24(金) 03:47:06.33ID:6ZonvnML >>138
Kotlin 及び Kotlin Script ではこんな風になる(a が元の配列または List)。
val b = a.filter { (it % 2) == 0 }
もちろん比較部分は (it and 1) == 0 等でも良い。it が偶数の時に true になりさえすればなんでも良い。
配列の要素数の N についてはここでは考える必要なし。
要素の型が Int かどうかも考える必要なしだが、% 2 の計算ができないとか結果が Int の 0 と比較できなければコンパイルエラー、または Script なら読んだ直後の文法チェック時にエラーだと思う。
Kotlin 及び Kotlin Script ではこんな風になる(a が元の配列または List)。
val b = a.filter { (it % 2) == 0 }
もちろん比較部分は (it and 1) == 0 等でも良い。it が偶数の時に true になりさえすればなんでも良い。
配列の要素数の N についてはここでは考える必要なし。
要素の型が Int かどうかも考える必要なしだが、% 2 の計算ができないとか結果が Int の 0 と比較できなければコンパイルエラー、または Script なら読んだ直後の文法チェック時にエラーだと思う。
147デフォルトの名無しさん
2020/07/25(土) 07:02:03.31ID:j1aQFTSL148デフォルトの名無しさん
2020/07/25(土) 11:32:49.78ID:vIjhxGJs 大抵の言語でfilter modulo一発だよね。
お題www
お題www
149デフォルトの名無しさん
2020/07/26(日) 11:42:26.03ID:467XWCJo >>138
ランダムは副作用なので、ちと面倒臭い。
(厳密には擬似乱数を作る為の種(newStdGen)だけが副作用)
Haskell
import System.Random
main = f 10 >>= print
f :: Int -> IO [Int]
f n = newStdGen >>= return.filter even.take n.randomRs (1,100)
実行結果
[56,70,100]
型指定しないと型推論が働かない。
(生成される乱数が整数とは限らない為)
戻り値は型で分かる通り、普通のリストでは無くIOなリスト。
newStdGenを使っているので、IOな値を返さないといけない。
(printもIO ()を返すのでreturnをprintに置き換えて直接出力も可能ではある)
randomRs (1,100) で1から100までの乱数の無限リストを生成。
後はtakeで無限リストから任意の個数を取り出してfilterするだけ。
(takeとfilterは順番が逆だと乱数の無限リストから偶数を任意の個数取り出すので問題の意図と違ってしまう)
問題が「出力しろ」では無く「抜き出せ」なので、あえてprintは関数の外に置いた。
ランダムは副作用なので、ちと面倒臭い。
(厳密には擬似乱数を作る為の種(newStdGen)だけが副作用)
Haskell
import System.Random
main = f 10 >>= print
f :: Int -> IO [Int]
f n = newStdGen >>= return.filter even.take n.randomRs (1,100)
実行結果
[56,70,100]
型指定しないと型推論が働かない。
(生成される乱数が整数とは限らない為)
戻り値は型で分かる通り、普通のリストでは無くIOなリスト。
newStdGenを使っているので、IOな値を返さないといけない。
(printもIO ()を返すのでreturnをprintに置き換えて直接出力も可能ではある)
randomRs (1,100) で1から100までの乱数の無限リストを生成。
後はtakeで無限リストから任意の個数を取り出してfilterするだけ。
(takeとfilterは順番が逆だと乱数の無限リストから偶数を任意の個数取り出すので問題の意図と違ってしまう)
問題が「出力しろ」では無く「抜き出せ」なので、あえてprintは関数の外に置いた。
150デフォルトの名無しさん
2020/07/26(日) 11:54:08.47ID:arqbmdN/ Haskellのコード見たいと思ってた
151デフォルトの名無しさん
2020/07/26(日) 11:55:36.48ID:Lwmxod4b 流行らなかった訳が分かった
152デフォルトの名無しさん
2020/07/26(日) 12:16:01.64ID:yLhsD6tn153デフォルトの名無しさん
2020/07/26(日) 12:31:12.02ID:XQciIU0B お題
2つの文字列の差を[]で囲って出力してください
例1
入力:abc adc
出力:a[b]c
例2
入力:abc acd
出力:a[bc]
例3
入力:abc bcc
出力:[ab]c
2つの文字列の差を[]で囲って出力してください
例1
入力:abc adc
出力:a[b]c
例2
入力:abc acd
出力:a[bc]
例3
入力:abc bcc
出力:[ab]c
154デフォルトの名無しさん
2020/07/26(日) 15:30:12.41ID:yLhsD6tn >>153
Haskell
一応、長さが違う場合、短い方に合わせる様にしてみた。
テストし切れてないかもなので、バグに気付いたら教えて下しあ。
main = putStrLn $ g "abcdefrh" "acdgefggn"
f False [] _ =[]
f False _ [] =[]
f True [] _ = "]":[]
f True _ [] = "]":[]
f flg (x:xs) (y:ys) | flg == True && x == y = ("]" ++ [x]):f False xs ys
f flg (x:xs) (y:ys) | x == y = [x]:f False xs ys
f flg (x:xs) (y:ys) | flg == False = ("[" ++ [x]):f True xs ys
f flg (x:xs) (y:ys) | flg == True = [x]:f flg xs ys
g xs = concat.f False xs
実行結果
"a[bcd]ef[rh]"
Haskell
一応、長さが違う場合、短い方に合わせる様にしてみた。
テストし切れてないかもなので、バグに気付いたら教えて下しあ。
main = putStrLn $ g "abcdefrh" "acdgefggn"
f False [] _ =[]
f False _ [] =[]
f True [] _ = "]":[]
f True _ [] = "]":[]
f flg (x:xs) (y:ys) | flg == True && x == y = ("]" ++ [x]):f False xs ys
f flg (x:xs) (y:ys) | x == y = [x]:f False xs ys
f flg (x:xs) (y:ys) | flg == False = ("[" ++ [x]):f True xs ys
f flg (x:xs) (y:ys) | flg == True = [x]:f flg xs ys
g xs = concat.f False xs
実行結果
"a[bcd]ef[rh]"
155デフォルトの名無しさん
2020/07/26(日) 17:41:12.51ID:1PJx+gwa やっぱフラグしかないのか?
156デフォルトの名無しさん
2020/07/26(日) 19:21:26.42ID:+ODzYEeD >>153 Ruby
def resolve( s )
f = true
ss = s.split.map{|w| w.chars }
ss[0].zip( ss[1] ).inject(''){|r, (c,d)|
r << ( (f)? '[': ']' ) if (c == d) != f
f = c == d
r << c
} + ((f)? '' : ']')
end
[ "abc adc", "abc acd", "abc bcc" ].each{|s|
puts "入力:#{s}"
puts "出力:#{resolve( s )}\n\n"
}
def resolve( s )
f = true
ss = s.split.map{|w| w.chars }
ss[0].zip( ss[1] ).inject(''){|r, (c,d)|
r << ( (f)? '[': ']' ) if (c == d) != f
f = c == d
r << c
} + ((f)? '' : ']')
end
[ "abc adc", "abc acd", "abc bcc" ].each{|s|
puts "入力:#{s}"
puts "出力:#{resolve( s )}\n\n"
}
157デフォルトの名無しさん
2020/07/26(日) 23:12:10.92ID:3QUkzPB/ >>155
確かこんなのあったな〜・・・と、inword/outword関数の相互再帰で書いてみた。
Haskell
main = (putStrLn.f "abcdefrt") "acdgefgg"
f xs ys | g xs ys =[]
f (x:xs) (y:ys) | x == y = outword (x:xs) (y:ys)
f xs ys = inword xs ys
inword xs ys | g xs ys = ']':[]
inword (x:xs) (y:ys) | x == y = ']':x:outword xs ys
inword (x:xs) (_:ys) = x:inword xs ys
outword xs ys | g xs ys = []
outword (x:xs) (y:ys) | x == y = x:outword xs ys
outword (x:xs) (_:ys) = '[':x:inword xs ys
g xs ys = or [null xs, null ys]
確かこんなのあったな〜・・・と、inword/outword関数の相互再帰で書いてみた。
Haskell
main = (putStrLn.f "abcdefrt") "acdgefgg"
f xs ys | g xs ys =[]
f (x:xs) (y:ys) | x == y = outword (x:xs) (y:ys)
f xs ys = inword xs ys
inword xs ys | g xs ys = ']':[]
inword (x:xs) (y:ys) | x == y = ']':x:outword xs ys
inword (x:xs) (_:ys) = x:inword xs ys
outword xs ys | g xs ys = []
outword (x:xs) (y:ys) | x == y = x:outword xs ys
outword (x:xs) (_:ys) = '[':x:inword xs ys
g xs ys = or [null xs, null ys]
158デフォルトの名無しさん
2020/07/29(水) 09:26:50.38ID:yJ6wpcWu お題1
じゃんけんを実装してください
1 = ぐー
2 = ちょき
3 = ぱー
入力: 1
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
お題2
あなたの勝率を指定できるようにしてください
勝率は0.0〜1.0で入力します
入力: 1 0.7
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
じゃんけんを実装してください
1 = ぐー
2 = ちょき
3 = ぱー
入力: 1
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
お題2
あなたの勝率を指定できるようにしてください
勝率は0.0〜1.0で入力します
入力: 1 0.7
出力: あなた=ぐー コンピュータ=ちょき あなたの勝ちです
159デフォルトの名無しさん
2020/07/29(水) 22:59:47.88ID:tovqwAmw >>158 Ruby
JANKEN = %w[Goo Chocky Parr]
KEKKA = %w[Win Lose Draw]
#お題1
odai1 = -> n do
r = rand(3)
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai1[1] # => You: Goo, Com: Chocky. Win
puts odai1[2] # => You: Chocky, Com: Goo. Lose
puts odai1[3] # => You: Par, Com: Par. Draw
#お題2
odai2 = -> (n, p) do
r = rand < p ? 0 : rand(2) + 1
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai2[1, 0] # => You: Goo, Com: Par. Lose
puts odai2[2, 1] # => You: Goo, Com: Chocky. Win
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
puts odai2[3, 0.3] # => You: Par, Com: Goo. Win
puts odai2[3, 0.3] # => You: Par, Com: Par. Draw
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
JANKEN = %w[Goo Chocky Parr]
KEKKA = %w[Win Lose Draw]
#お題1
odai1 = -> n do
r = rand(3)
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai1[1] # => You: Goo, Com: Chocky. Win
puts odai1[2] # => You: Chocky, Com: Goo. Lose
puts odai1[3] # => You: Par, Com: Par. Draw
#お題2
odai2 = -> (n, p) do
r = rand < p ? 0 : rand(2) + 1
'You: %s, Com: %s. %s' % [JANKEN[n - 1], JANKEN[(n + r) % 3], KEKKA[r]]
end
puts odai2[1, 0] # => You: Goo, Com: Par. Lose
puts odai2[2, 1] # => You: Goo, Com: Chocky. Win
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
puts odai2[3, 0.3] # => You: Par, Com: Goo. Win
puts odai2[3, 0.3] # => You: Par, Com: Par. Draw
puts odai2[3, 0.3] # => You: Par, Com: Chocky. Lose
160デフォルトの名無しさん
2020/07/29(水) 23:09:16.98ID:tovqwAmw 下から5行目タイポ
puts odai2[2, 1] # => You: Chocky, Com: Parr. Win
puts odai2[2, 1] # => You: Chocky, Com: Parr. Win
161デフォルトの名無しさん
2020/07/29(水) 23:11:53.00ID:z6Fnx3oM Parr
出たか連続校正レス君
出たか連続校正レス君
162デフォルトの名無しさん
2020/07/29(水) 23:15:30.50ID:zhbinuHB 別にええやろ
163蟻人間 ◆T6xkBnTXz7B0
2020/07/29(水) 23:42:09.78ID:hGtKVe2E 子ども国会で、グー、チョキ、パーのつづりを次のように閣議決定しました。
グーはgoo、
チョキはchoki、
パーはpar、
ジャンケンはJankenとする。
グーはgoo、
チョキはchoki、
パーはpar、
ジャンケンはJankenとする。
■ このスレッドは過去ログ倉庫に格納されています
