『プロジェクト・ヘイル・メアリー』ネタバレ検閲おじさん
「本文が始まる前の絵は見るな」
【📕 同時読書】完全初見で『プロジェクト・ヘイル・メアリー』を読む!【星見まどか】 - YouTube
初見リアクションみたいなのはゲームプレイ動画は見てるけど、内容を知っている物の初見リアクションを見るのはあまりやったことがないので面白いな。特に自分が好きで何回も読んでいるような物を、自分も読みながら反応を見てると。あと、その人がある程度詳しいから読みながらの考察を聞くのも面白いし。
一時期、近畿霊夢局の実況を漁っていたことがあったけど、期待した通りのリアクションをしてくれる人ってあんまりいなかったんだよなー。その時は企業Vばっかり漁ってたからというのもあるんだろうけど。
『宇宙のランデヴー』とかそうだけど、異星人って逆ネジ作りがちよな。ハードSFに出てくるエイリアンが作った回転機構の方向(右で締めるか左で締めるか)の統計を取ったら明らかにバイアスがありそう。
地球人と宇宙人の差異を明示することで「凝った設定を作っている」とアピールすることはできるけど、あえて地球人と宇宙人の共通点を作ったうえで、それをうまく読者に伝える、みたいな設定があっても良さそうな気がする。ネジしかり、スペクトルしかり。
相手が地球生物と同様の水に依存した生命体の場合、生息する環境はある程度のリミットがある。例えば温度が低すぎてはだめだから、最低でも温度が2,3℃を下回らない環境で、かつ上限は100℃より明らかに低く、体を構成する化学物質(タンパク質)まで共通なのであれば最大でも40℃程度が上限になる(温度が高い環境では化学的に壊れづらい(その環境で再利用しやすい)温度特性の化合物が使われるかもしれないけど)。同様にして、圧力(気圧)もある程度の制限がある(水面で1,2気圧程度、とか)。そういう環境でコミュニケーションを取る場合、音はだいぶ有力なはず。もし相手が声(耳)を持っていたとして、彼らが使う周波数帯は人間とそう離れたものにはならないはず。周波数が低くなると情報量が減るから使いづらい。周波数が高くなると伝搬距離が減るから使いづらい。コウモリが超音波を使うのは、彼らは遠距離でのコミュニケーションではなく、近距離(数m程度)でしか使わないため。イルカが超音波を使うのは、生息環境が違うから(媒質の違い)。
光の場合は、パッシブなものであれば、恒星のスペクトルで赤外線から可視光あたりが使える範囲であって、人間と重ならない場合も考えられる。ただ、赤外線は熱エネルギーとしては使えるけど化学エネルギーとしては使いづらいから、高度な文明レベルに達するには可視光域の恒星だけ考えればいい、みたいな考え方もある(広く合意が得られているかは別として)。あとは、赤色矮星みたいな星はフレアが多いから生物には厳しい、みたいな説もあるらしい(そういう環境ならそういうのに強い生物が生まれるだけでは、という反論もあり得るだろうけど)。
アクティブに光を出そうとする場合、出す方はそこまで難しくはないはず(少なくともゆっくりなモールス信号程度の情報速度であれば)。逆に、受信する側が面倒なはず。人間みたいに空間的・周波数的に分解できる視覚はエネルギーコストが悪い。それに加えて情報速度を高くするには時間分解能も稼ぐ必要がある(人間の視覚はたかだか30Hzあたりで飽和する)。コリメートして空間・周波数的に分解する必要がないもの、時間分解能だけに特化した受光器官はそれほど苦労せず作れるはずだけど、コミュニケーションを考えたときに、視野が狭いのは難しい。ただ、先に広視野角・低情報量な受光器官でハンドシェイクして(注意を引いて)、その後で情報量の高い器官に切り替える、みたいなことは考えられる。人間の場合は聴覚だけでコミュニケーションができるから基本的に必要ないけど、それでもまず声をかけて存在を認識させて、相手が視覚的に自分を捉えたと判断してからより高い情報密度で送る、みたいなことはやっているわけだし。
生物の起源を深海に求めて、かつ海中でも地球よりも遥かに高いエネルギーが得られる状況であれば、視覚(光)に依存しない生物とかは考えられるけど、海中は生物が活動する領域として結構厳しい気がする(運動のエネルギー効率が悪い。逆に中性浮力が得やすい利点はある)。空気から直接酸素を取り出せる陸上の方は活動がしやすそう。空中は飛ぶためにエネルギーがいるし、それを減らすために色々と切り詰める必要がある。水面上は使えるかどうかちょっと怪しいな。食物連鎖だけ考えれば、気液界面を生活圏にした生態系があってもいいけど、文明を発達させようとしたときに、重元素が得られないから、植物由来の建築物以上の文明を作れない気がする。刃物程度であれば海から生体濃縮した元素(骨とか、殻とか)を使うことはできるけど、それ以上が難しい。
惑星の形成を考えても、小さい惑星は大気(&水)が早くに失われるし、巨大な惑星を作ろうとするとガス惑星みたいになるから、生命が発生して文明を作れる大きさはある程度の範囲に収まるはずで、重力値がリミットされる以上は、そこで進化できる生物の大きさもある程度制限される。神経伝達物質の密度や応答性にもよるけど、知能を発達させるにはある程度の規模の計算リソース(脳)が必要で、それを収容できる体の大きさもある程度決まる。人間より2桁小さい異星人とか、人間より2桁大きい異星人、というのは、ちょっと厳しい気がする。大きい方はエネルギー収支次第である程度広がりそうな気もするけど。
そういうのを考えると、異星人の視覚や聴覚、体格は人間とそう離れたものにはならなさそう。人間原理じみてきたけど、人間原理ってそういうものだし……
個人的には体内で核分裂反応を使ってエネルギーを得るような生物とか出てこないかなーとか思ったりするわけだが。放射線で切れないような分子で体を作るのであればそれに応じて化学的に安定な分子になるだろうけど、環境温度が高くなるとその分得られるエネルギーの割合が下がるからなぁ。あとは、例えば数百億年後の宇宙を考えて重元素(ウラン等)が多い環境を考えても、結局はウラン235の半減期があるから、超新星爆発とかで元素を作ってからすぐに惑星まで作らなきゃいけない。あまりU235濃度の高い環境では自然に連鎖反応が起きて消費されるという問題もあるし。重元素(特に放射性元素)リッチな宇宙は今の宇宙よりも物質密度が低いはずだから、そういう環境で惑星系を短期間で作れるかは怪しい。そもそも星の進化を繰り返したところで放射性元素は濃縮されるわけじゃないからな。やはり鉄か…… 金属生命体か。。。
半導体プロセスがある程度発展してきた現代を考えると無機生命体も希望がありそうだけど、とはいえ現代の最新のプロセスを使ったGPUだってクソみたいなエネルギー効率で人間より遅い思考速度程度のAIしか作れないからなぁ。ニューラルネットワークを直接実装すれば効率は良くなるとはいえ。そういう神経系をどうやって自己複製するんだって問題もあるし。
“激ヤバ納期”必至!? 初の「護衛艦輸出」への高い壁 「日本ファースト」は通用しない!(乗りものニュース) - Yahoo!ニュース
1番艦をスライドして外国製装備(特に自衛隊が運用していない米国製ミサイル等)を搭載できるように改造して輸出する、ってのは、短期的な「日本ファースト」から考えれば欠点かもしれないけど、長期的に見れば良さそうな気がするけどねぇ。適当な理由を作って、その分の費用も多少なり外国が負担してくれて、日本が運用する気のないミサイルを運用するための改修や評価を実施できるんだから、万が一有事になったときにはその実績を元に米国から買ったり、あるいはオーストラリアが在庫しているミサイルを積むことができる。実際にやるか(できるか)は別としても、そういう能力(海外から弾薬を調達して使用できる能力)があると相手に警戒させるだけで、日本のミサイルの在庫量だけを見て「(日本が本格的にミサイルの在庫を増やす前の)今のうちにやっちまおう」みたいな短慮な判断を遅らせることができる。まあ、ミサイルを買ってきて積める能力を取得する前にとっととやっちまおう、と考えられると困るわけだが。
後続艦で評価しても同様の結果は得られるだろうけど、1番艦を使うとその分作業が早く終るし、ハード的な改修が必要だと判明したときに、すでにある艦を改修するのはハードルが高いけど(特にすでに問題なく運用できていた場合)、1番艦でその作業をやっておけば、それ以降の日本向けを作るときに「今更新しい設計をやり直して実績もない設計に変えるの面倒ですよね。輸出用の設計でも特に問題ないのでこのまま流用しましょうよ」で能力をそのまま受け継げる可能性がある。
使うかどうかわからないけど、というような部分だと、日本が運用する艦を、オーストラリア向けからas-isで作っていれば、イザというときに豪州まで船を持っていって修理するなり色々できる可能性も出てくる。損傷した艦を持って行くには遠いし、日本の造船所が軒並み使えない時点でもう詰んでるだろ、という状況ではあるけど。
オーストラリアが日本案を採用するうえで、タイムゾーンとかが有利になったりすることってあるんだろうか? 「建造中(or運用中)にトラブルが起きたら、そちらの営業時間中に連絡を貰えればすぐに対応できますよ、時差が6時間もあるようなところが相手だと返事は翌営業日になりますよね」みたいな。日本と豪州西部には1時間の時差(日本が1時間進んでいる)があるけど、まあ、今どきの日本の会社なら残業を含めれば同じタイムゾーンで仕事をしているとも言えるし…… これくらいの規模のプロジェクトなら現地に技術者を駐在させるとかもあるだろうし、わざわざ本国が対応しなきゃいけない事態ってのも少なそうな気もするけど。
教育用電波望遠鏡キット活用ワークショップ | 国立天文台(NAOJ)
国立天文台は、簡易電波望遠鏡キットを用いて電波天文学の基礎的な理解を普及させることを目的としたワークショップを開催します。特に高校・大学の教育現場、科学館等での活用を視野に入れたものです。
説明がこれだけしか書いてないからどういうものなのか全くわからない。ホーンアンテナを作るなら材料費を払ってね、みたいなことが書いてあるから、ホーンアンテナを作って宇宙電波を受信するようなことをやるんだろうけど。どんなものが見えるんだろうか。やっぱり太陽とか?
SETI教材を作っている会社がVLBI学習機材を作るみたいな話もあったけど、あれもどうなったんだろうか。市販のSDR受信機を使って受信性能を大幅に向上したよ、みたいな概要は出てくるけど、細かい話は見当たらないな。数千円くらいのSDRを使うなら性能もそこそこだろうし、数十万円くらいのSDRを使うなら導入できる学校は少ないだろうし。VLBIというからには独立したクロックを使うんだろうけど、どんなクロックを使うんだろうか。それだけでも相当な価格になりそうだが。
太陽が見えたみたいなことは書いてあるけど、学習用の教材なら基線数はそれほど多くはないだろうし、太陽表面を分解するような能力ではなくて、せいぜい「このあたりに太陽がありそうだね」程度のイメージしか得られなさそうな気がするけど。
全国の高専に1,2m程度の電波望遠鏡を導入して、全国規模で結合すれば数百~千km規模の開口を作れる、みたいになれば面白そうだけど、とはいえ日本は国土が細長いからなぁ。UV平面がスカスカになりそう。
そういえば高専で衛星地上局ネットワークを作る、みたいな話はどうなったんだろうか。それが構築されれば高安定クロックを追加すればVLBIとして運用したり色々使えそうだけど、昨今の小型衛星もなぁ……
米AOLダイヤルアップ接続サービス、9月で終了 映画やドラマに登場した90年代の象徴 - CNN.co.jp
ダイヤルアップ接続のサーバー側って作れないものかなーとちらっと考えてみたり。
一番基礎的な接続は300bpsFSKだからデータ速度で言えば大したことはない。低ビットレートとはいえ搬送波周波数も低めだからうまいこと処理しなきゃいけないけど。しかし、全二重通信が必要なのがちょい厳しいのよなー。例えば特小トランシーバ1台(半二重)でキャリアする、みたいなことができない。あるいはATコマンドにビジーを返すとか、半二重になるように遅延させるとかで対応できるのかもしれないけど。
YouTubeでは時々Home Labでダイヤルアップサーバーを組んでる人がいるし、日本でも同様のことをやっている人は稀によくいるらしいけど、基本的には既製品を入手して組んでるっぽい。
オープンソースのPPPサーバーとかあったら面白そうだが。例えば上り144MHz/下り430MHzのアマチュア無線を使ってダイヤルアップ接続できるサーバー、とかがあれば、欲しがる人は一定数いそうな気がする。企業や政府に検閲されないネットワーク、みたいな売り文句で。平文でデータ飛ばして検閲もクソも無いだろ、というところではあるけど、それはまあ、E2EEで頑張るとか。キャリアはV/Uフルデュプレックス対応の無線機をそのまま流用してもいいし、アメリカとかならUV-5系の無線機を2台使うなり、受信はSDRで処理するなり、どうとでも作れる。ただ、こういう需要は最近はLoRaみたいな通信プロトコルの端末が市販されているから、そっちに吸われてるんだよなー。
まあ、そのうちどこかのタイミングで誰かが簡易的なPPPサーバーを実装して、それに触発された人がさらに性能の良いものを作って、みたいなことが起こるんじゃないだろうか。
DEEP DIVE Cast、以前はしょうもない誤字(人間なら常識判断で除外できるようなもの)があまりにも多い印象だったけど、ここ最近はかなりマトモになってきた気がする。今度は誤変換が増えたけど、AIでアホみたいな誤字を量産するよりはマシ。情報で商売している人たちだし、正しい情報を提供して判断に役立ててもらう、みたいな方針の人たちだし、そういう人たちが大量の誤字が入っている動画を公開するのはあまり良くない印象だった。
今は人間が文字起こししているんだろうけど、まだ若干「この人ミリオタではないんだろうな」みたいな人格が透けて見える気がする。まあ、ああいう組織でミリオタを採用していいかというのは諸説だろうからなぁ。とにかく経験を積んで耳を慣らしていくしかないんだろう。兵器の名前や地名が聞こえたら聞き逃さないような耳に。
Ubisoft+の契約がようやく終了。
ACSのプレイ時間は206時間なので、この1ヶ月で49h(1.6h/d)くらいか。この1ヶ月は暑さに体が慣れたというのもあるし、涼しい日も多かったから、比較的プレイ時間が長い。
最近のアプデで、装備を引き継いでニューゲームしたり、レベル上限が更新されたので、そのあたりを遊んでいたけど、しかしACSは周回するにはフィールドが広いな。経験値を稼ぎたいならめぼしい城を漁ってマップを1周したら転生して、を繰り返すべきか。まあ、そのあたりはまた次回。次は涼しくなってからかな。
Steamのセールで買ったゲームとかもあるし、Ubisoft+のゴタゴタで放置していたので、そっちも手を出さないと……
amazonの定期おトク便って、次をスキップすることはできるけど、次を直ちに(早めて)注文することはできないんだな。本当に定期的に欲しいものならいいけど、不定期かつコンスタントに欲しいものは普通に注文するほうが圧倒的に楽。定期便、意外と不便な気がする。
気がついたらKindleで連続1年以上毎日読んでたらしい。夜中の23時頃とか1時頃とかに読んでるので、タイミングが悪いと24時間以上空いてJSTではある1日は全く読んでないみたいな扱いになっている。基本的には毎日10分とか30分とか、3年くらい続けて読んでいるのかな。
GPSの精密歴、フォーマットをググってもほとんど情報が出てこない。なんでこんなに少ないんだ、ってくらい出てこない。
データは直交座標系とクロックエラーを羅列している感じなのかな? カルテシアンなら6要素が必要なわけだから、このデータを使って軌道伝播させることはできない。厳密に言えば、複数時刻(例えば5分間隔)の位置情報が与えられているわけだから、その点群にフィットするカルテシアン軌道要素を求めることは可能だろうけど、現実的ではない。
もしかして、他の軌道要素(例えばサブフレーム2/3)で求めた位置と、精密歴等で得た位置から位置誤差を求めて、それを時間方向で内挿して、元の軌道要素から求めた位置に加算する、みたいな処理をやるべきなんだろうか?
RINEX等のフォーマットはかつてJPLが公開していたらしい。が、現在はリンク切れしている。
Internet Archiveに残っているので、とりあえず参考程度には使える。
https://web.archive.org/web/20150320015216/https://igscb.jpl.nasa.gov/components/formats.html
ちゃんと見てないけど、おそらく「分かっている人には分かる」系の説明文だと思う。
***
3Dプリンタで画鋲の試作
スライサーでオプショナルストップを追加して、造形途中に中に小さい釘を入れる(今回は1.2x19mmの釘を使用)。
使えないことはないけど、釘が固定されていないから、あまり使いやすくない。造形後に接着剤を流して釘が動き回らないようにするとか、なにか工夫が必要。あるいは、オプショナルストップの後で隙間に樹脂を流し込むようなコードを追加してもいいけど、座標とか色々考えなきゃいけないのが面倒。
縦に作れば釘1本分の穴を開けておけばいいからグラつきは少なくなるけど、今度は全体をどうやって浮かせるか(サポート材が無駄になる)とか、断面積が小さい方向で積層しなきゃいけないから折れやすくなりそうとか、いろいろ懸念がある。
今回はプリンタに入れっぱなしにしていた黒のフィラメントを使ったけど、蓄光のフィラメントを使えば、蓄光の画鋲も作れる。
作るのがそこそこ面倒なのが難点。この大きさならベッドに敷き詰めれば1回で130個造形できるけど、1個1個釘を入れる手間がな。。。オプショナルストップはXY平面で原点に移動するので、ヘッドが左側手前にある状態で作業しなきゃいけない。面倒。
軽くググってみたところ、ノベルティのショップで画鋲を作ってくれるところが2,3あるらしい。300-1000箱が1ロットだそうだ。普通の樹脂に染料をいれるようなものだけじゃなくて、クリア系の樹脂に蓄光塗料をいれるようなものも作ってくれるんだろうか? 小さい実店舗1個のショップで1000箱の発注は厳しそうだなぁ。クラファンで集めようにも、1人10箱買って100人集めるのは大変そう。
***
Mode-3/A/Cログ
上が8月9日、下(後ろ)が8月8日のログ。普段は110MB/day~170MB/day程度なのに、9日は395MB/dayもある。旭川空港への離着陸がかなり増えているのかな。3(or 9)連休の初日で便数が多かったのかな?
翌10日も250MB/dayと、かなり多かった。その後は190MB/day(11日)、160MB/day(12日)と、だんだん減ってきているかな。
***
amazonで買ったHMC7992ボード。を、改造。
HMC7992はアナデバのRFスイッチで、1対4を選択できる。1個のアンテナに4系統のRF回路(例えば2組の送受信機を1個ずつとか)を接続したり、1個の送受信機(無線機モジュールとか)に4個のアンテナ(指向性とかバンドとか違い)を接続したり、ということをやれる半導体スイッチ。同軸リレーみたいに嵩張らないし、機械可動部がないし、何よりソリッドステートだから安い。
安いとは言え、チップの単価はDigiKeyで1500円を超えている。ちなみに、amazonで買ったこのボードは周辺回路付きで400円未満とか言うアホみたいな製品。どう考えてもマトモなモノじゃないけど、遊びでちょっと試しに使ってみたいだけだし…… ちなみに、メーカー純正の評価ボードは4.2万円。2桁違う。
COMをSDRドングルに接続して、Bias TeeをLで取り出して、L経由でRF2に出力するのと、制御端子に突っ込んで、Bias TeeがOFFならRF1へ接続、ONならRF2(DC通電)へ接続、という感じにリモートでスイッチできるようにしてみた(RF3/4は未使用)。
電源は4x Ni-MHで、Bias TeeからD経由で電池にも逆流させているので、Bias TeeがONなら電池の充電が行われる。Ni-MHならテキトーに電力突っ込んでもそう酷いことにはならんだろ、という慢心。とはいえ多少の怖さはあるので、Bias Teeから電池までL-D-Rを直列に入れて、Rは47Ωを選択。電池側が地絡していてもBias Teeからは100mA程度しか引っ張らない。逆に言えば、DoDが浅い場合はほとんど充電が行われない。どのあたりで平衡するのかがわからないけど、たぶん平衡するまでに数週間から数ヶ月かかるので、評価するのも難しい。Bias Teeのデューティー比によっても変わるしな。
一応、Bias TeeのON/OFFでRF1とRF2が切り替えられているっぽい雰囲気は得られている。少なくとも、適当なリード線を片側につけてON/OFFしたら、それに応じてFMラジオが入ったり切れたりする。ただ、本当に欲しい帯域(Lバンド)まで通っているのかは不明。解析ソフトを書かなきゃいけないけど、それが面倒でなぁ。。。
あとは、理想的にはこれを計3組作って、それぞれをAirSpy Miniで受信したいんだよな。ただ、ドングル1本2.5万円として3本で7.5万円、それぞれにデータ収集用のNUC的なものが必要になるし、電源とかも考えると30万円とかは行きそう。流石にそこまではできない。とはいえ、R820系だとちょっと厳しそうだよなぁ、という感もありつつ。まあ、まずはR820で大雑把に期待した通りの処理ができるか試してから、という感じかな。
今回は片側の先にLNAがついているのでBias Teeを貫通させているけど、もちろんRF2行きのインダクタを外せばAC結合でも使える。電池及び制御ラインだけ接続すれば、単にBias TeeでRF2系統をスイッチすることもできる。ただ、通過電力は33dBm(2W、終端させるなら27dBmまで)だから、そう大きな電力は通せない。アマチュア無線とかで送信したい場合はかなり低出力じゃないと使えない。
終端27dBmというのは、3ポート合計で1.5Wを吸えるのか、全ポート合計で0.5Wなのかは不明。データシートには底面パッドもソルダリングしろと書いてある。まあ、当然だろう。が、このボードは底面パッドは未接続っぽい(貫通ビアがるけど濡れてる感じがまったくない)。まあ、安物ボードだからね。しょうがないね。今回はもっぱら受信専用なので、吸収電力はたいしたことないはず。ベタGND取れてないから特性が悪い、みたいな可能性はありそうだけど、まだそこまで評価してない。
うまいこと制御回路を組めば4ポートを選択できるから、例えば無指向の1本と、北向き南南東向き、南南西向き、みたいな4組を選択できるようにしたり、あるいは東西南北の4本とか、あるいは144MHzダイポール、430MHzディスコーン、1200MHzコリニア、2400MHzコリニア、を切り替える、みたいなことは考えられる。ただ、周波数を切り替えたいなら適当な混合器(BPF)を使えばいい話なのでな。
同軸1本で制御信号を入れるのはまたちょっと面倒な気がするな。制御回路/RFスイッチ用の電源をBias Teeで送って、制御信号はさらに10kHz程度の低周波ACで送るような感じになるのかな。例えば10kHzを基準にして、11kHzが出ていればコントロールAをセット、12kHzが出ていればコントロールBをセット、とか、あるいは10kHzならClear/Clear、11kHzならSet/Clear、12kHzならClear/Set、13kHzならSet/Set、みたいに選択するとか。マイコンを使わずに完全にアナログ回路でBPFや増幅素子を使って組むこともできるだろうけど。ただ、rtl-sdr blog v3は低周波(14.4MHz以下)はダイレクトサンプリングができるから、数kHzの強い制御信号をいれるとRTL2832の耐入力を超える危険性がある。v4だとアップコンバータが入ったはずなので、こちらはミクサの耐入力がある。
受信機側(選択信号エンコーダ側)をシンプルに作りたいのであれば、例えばBias Teeをダイヤルパルス的に使う方法もある。デコーダ側は容量の大きなキャパシタで一時的に電源を確保して、Bias TeeがOFFになった回数を数える。これなら受信側だけ作ればいいし、追加のインターフェース(RTLのGPIOとか)を使う必要もない。ただ、Bias Teeの制御周期がどれくらい確保できるかによって応答性が変わる。おそらく10Hz程度は出せるはずだから、切り替えに要する時間は1秒未満に収まるはず。短い周期で切り替えたいという場合はオーバヘッドが大きいけど、片側は連続35秒、1周期5分で切り替え、とかなら、1,2秒のオーバーヘッドはある程度許容できるはず。ダイレクトサンプリングの問題と同じで、4.5Vのパルスを連続して(大量に)入れても大丈夫なのか(アナログ回路が劣化しないか)の懸念はあるけど。
*
アクティブGPSアンテナを直結したSDR受信機でFMラジオを受信すると、感度は悪いけど同軸で入ってきたノイズ的な電波がちゃんと受信できるけど、ローカルで受信できる84.2MHzと77.1MHzの内、77MHzはLNAのON/OFFでは変化がないが、84MHzの方はLNAをONにすると明らかに強くなる(IQのヒストグラムが広がる)。謎い。両方とも変化があるならまだしも。比で言えば1割程度は離れているわけだから、共振的な特性の違いがあるってことなのかな。
***
適当なGUIアプリを作って、4つの点を配置して、1点とそれ以外の距離差から双曲面を書いて、交差する2点を表示。上から見ると基準点が中央、3点が周囲に約120度ずつ配置されている、みたいな状況で、基準点とそれ以外は高さが少し違う。交点は2箇所あって、下の黒丸塗り潰しと、見づらいけど上に黒丸線がある。もっと複雑な配置でもちゃんと交点らしき場所を推定できているから、計算は正しいはず。
今回使っている計算式(Copilotに教えてもらった)だと、4点が同一平面上にあると計算が発散する。方向余弦行列?の逆行列でNaNが入る(元の行列式がゼロになる)ため。行列の計算はとりあえずそれっぽいコードをベタ書きしているけど、同じ行列をオンラインの計算機で逆行列を求めても解無しになるから、一応これで正しい動作なんだと思う。
***
C#のSystem.NumericsのVector3, Vector4, Quaternion, Matrix4x4, あたり、doubleの実装も追加してくれないかなー。座標変換で精度が欲しいときに自前で用意しなきゃいけないのだいぶめんどい。あと、ソースリンクの中身はカリカリに最適化してあるのでどういう計算をやっているのかがわからない(自分でdoubleで実装するときに参考にできない)。
C++のジェネリックってこういうときは羨ましいよなー。一つコードを書けば、floatとdoubleを使いまわしたりできる。まあ、それは理想論であって、三角関数の精度をどうやって分けるんだ、みたいな課題はあるんだろうけど。
0 件のコメント:
コメントを投稿