Thursday, January 27, 2022

双対数で自動微分??

 タイトルの通りだが、双対数の軸方向に1だけ移動すると、自動微分となるという話。ググってみるといくつか記事が出てきたので、後ほど勉強してみる。

Sunday, January 23, 2022

CGAL intersectionは汎用的に作られているため、型が分からずバグるのか

接触判定のプログラムでの問題が起こった。
CGALのintersectionで三次元の三角形の接触部分の線分をとらえようと、テストコードを組んだ。それはうまくいったので、次に本プログラムに組み込んだら、なぜか接触している三角形の判定が漏れ始めた。
すると、こんな記事を見つけた。
https://stackoverflow.com/questions/32951886/wrong-inexact-intersection-between-3d-triangles-cgal/32965564#32965564

質問者も私同様に、接触判定漏れの問題を指摘している。その回答で、do_intersectしてから、intersectionを呼ぶと、型が分からず変な挙動をするとのこと。たしかに私もdo_intersectを呼んだあとなので、挙動としては同じである。
Cartesian_converterを使えば正しい呼び出しになるとのこと。
具体的な使い方は、こちらにある。
https://doc.cgal.org/latest/Kernel_23/classCGAL_1_1Cartesian__converter.html

結果、たしかにうまくいった。
私の場合、メッシュ処理のPMP::do_intersectを呼んだあとに、三角形の型Exact_predicates_inexact_constructions_kernel::Triangle_3で接触を見ようとしていたため、この問題が起こった。
この型をコンバーターを使った例の通りに変更するだけで、問題が消えた。

Friday, January 21, 2022

二つのメッシュの接触のメモ

CGALでの二つのメッシュの接触判定と結果の取得方についてのメモ

https://stackoverflow.com/questions/22900932/cgal-meshes-intersection-collision

良記事。手元で実験済みでうまくいくことも確認した。

face_descriptorのidx()はメッシュのindexで、二つのメッシュについて、pair<face_descriptor,face_descriptor>が出力の1要素となる。

vectorで出力されるので、back_inserterを引数で忘れないように。

Sunday, January 2, 2022

Resolutionを分解能としか読めなくなっていた

慣習というのは恐ろしいもので、基本を忘れさせてしまう。
Resolutionという単語について、resolveの名詞形なので、通常ならば決心とか解決という意図で読むのだが、機械での用語として用いる頻度が異常に多いので、分解能、解像度としか読めなくなっていた。
基本的なところを忘れてはいけないとこのタイミングで思いなおす。

さて、Resolutionは決心とか解決とかの意であるので、年頭では抱負という使われ方もするらしい。what's your resolution for 2022?などと聞かれるようであるが、私は聞かれたらなんて答えよう。
会社員の基本に立ち返り、とりあえず事業化を成功させるとしておこうかな。