2021年08月28日

RegisterHotKeyがWindowsの標準ホットキーに先を越されて登録できない場合

あれ登録してるのExplorerなので、Explorerを全部落としてみましょう。
explorerをtaskkillして、自分のを登録してから再度explorer立ち上げれば良いです。
※タスクバー再復活の処理してないプログラムはアイコン消えます(昔のによくある)
タグ:Program
posted by Nick at 20:46| Comment(0) | TrackBack(0) | プログラミング

2019年03月02日

three.jsで太陽系を作ってみる

と、意気込んでみたのはいいものの。
結構ソースがでかくなってしまいました。

作るだけなら簡単なんですよ。球8個作って並べて公転させればそれっぽいし。
でもここからテクスチャ貼って自転入れて視点移動入れてとか凝りだすと
javascript+three.jsでも結構大変です。

まあでもやりました。やってやりましたよ。これです。

SolarSystem1.png

黒い棒にしか見えませんが、左から右に向かって太陽系の惑星が並んでます。
左の黄色いドットが太陽。一番右側には海王星があります。あるんです。

いやー、宇宙のスカスカ具合、甘く見てた。
全部視野に入れようとすると見えなくなるほどだとは。

知識では知ってたしmitakaでも知ってたはずなのに、
自分でやってみるとやっぱ実感が違いますね。
大きさはともかく距離遠すぎるんですよあなたたち。特に木星以降。
計算してみると、地球を1ドットで表現すると太陽から海王星まで
35万ドット必要らしい。320Kテレビでも足りんわ。

まあ言ってても太陽系が縮んでくれるわけでもなし。
仕方ないので距離と大きさをそれぞれ3乗根して色々追加したのがこちら。



開始時点では惑星直列状態ですが、
しばらくぼーっと見ていればなんかそれっぽくなります。
※ ちなみに右ドラッグは速度調整になってます。

これ、距離と大きさ以外にも色々嘘をついてまして。

公転は楕円じゃなく真円にしてるし(楕円の位置計算面倒だったので)
環境光なんてほんとは無いに等しいし(裏面が見えないのは寂しかったので)
惑星直列なんて実際起こったこと無いし(なので右上の日時は西暦ではなくただの目安)

そもそも公転方向とか傾き方向とかちゃんと合ってるか分からないっていうね。
まあでもそれっぽいからよいかな。うん。

ソースは続きで

タグ:Three.js IE不可
posted by Nick at 17:08| Comment(0) | TrackBack(0) | javascript

2019年02月23日

three.jsやってみました

昔DirectXでやろうとしていた3Dグラフィックス。
あれはあれで楽しかったのですが、やっぱりまともに付き合う気がしない。
結局ちょこっと使ってそのまま放置してました。

でも最近仕事でがっつりweb系やってまして、そこでthree.jsに触れる機会もありまして。
そのあまりの快適さに…なんていうか…その…感動…しちゃいましてね…

そこで、あれだけ面倒だった3Dをこんなに簡単に出来るんだぜ!
みたいなのをやってみます。

絶対に必要なのはレンダラとシーンとカメラ、エレメントのcanvas。
後はヘルパーを追加してそれっぽくしたのがこれ。



まずはこんなもんで。
視点移動はまた今度。(OrbitControlsは使いません。どうせカスタマイズしたくなるし)

以下ソースとコメント
タグ:Program Three.js
posted by Nick at 11:26| Comment(0) | TrackBack(0) | javascript

2019年02月22日

色々メモっておきたい

うーんひさしぶり。実に4年半ぶり。

まあもともと自分用のメモ的に使ってるブログですが、いくつか書いておきたいことが出来たので。

1.サクラエディタのマクロ
2.threejs
3.Unity

ここらへん。まあ暇を見ておいおい追加。
posted by Nick at 23:42| Comment(0) | TrackBack(0) | プログラミング

2014年07月05日

Python面白い

KRunnerがきっかけで初めたPythonですが、何これ楽しい。

デフォルトで多倍長整数演算って凄まじい発想。

print(2**19937-1)
たった一行これ書くだけでメルセンヌツイスタの周期が
全て出力されるなんて。

よーしパパ黄金率をいちまんけた求めちゃうぞー

# coding: utf-8
n0 = 0
n1 = 1
for i in range(0, 30000): # 数は適当に数倍
n = n0 + n1
n0 = n1
n1 = n
print("1." + str((10**10000)*n1//n0)[1:]) #手抜き
うっひょう余裕!

次はデータベースだー

import sqlite3 as sql
con = sql.connect("mydb")

if con.execute("select count(*) co from sqlite_master where name='tbl'").fetchone()[0] == 0:
con.execute("create table tbl (id number, nm varchar(20))")
for i in range(1,10):
con.execute("insert into tbl (id, nm) values (" + str(i) + ", 'name" + str(i) + "')")
con.commit()
print(con.execute("select count(id) from tbl").fetchone()[0])
…とまあ、だいたい何でも出来て笑えます。
たった2行だけでデータベースを構築できるってのがもう爆笑。

言語自体が楽しい感覚って相当久しぶり。ExcelVBA以来でしょうか。
posted by Nick at 06:27| Comment(0) | TrackBack(0) | python