Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
円と円の交点の求め方
Search
Sho Iizuka
June 13, 2014
Science
0
37
円と円の交点の求め方
https://www.slideshare.net/kujira16/ss-35835784
Sho Iizuka
June 13, 2014
Tweet
Share
More Decks by Sho Iizuka
See All by Sho Iizuka
半年前の自分に教えたい systemd のハマりどころ
arosh
19
15k
Osaka.Stan#5 LT プログラミングコンテストのデータを分析した話
arosh
1
6.3k
簡潔データ構造輪講資料(順列)
arosh
1
7.5k
Pythonにおける日本語処理
arosh
1
2k
FM-index による全文検索
arosh
0
24
円と円の外接線の求め方
arosh
0
26
Other Decks in Science
See All in Science
多次元展開法を用いた 多値バイクラスタリング モデルの提案
kosugitti
0
190
機械学習を支える連続最適化
nearme_tech
PRO
1
150
20分で分かる Human-in-the-Loop 機械学習におけるアノテーションとヒューマンコンピューターインタラクションの真髄
hurutoriya
5
2.3k
Science of Scienceおよび科学計量学に関する研究論文の俯瞰可視化_ポスター版
hayataka88
0
130
【健康&筋肉と生産性向上の関連性】 【Google Cloudを企業で運用する際の知識】 をお届け
yasumuusan
0
330
【人工衛星】座標変換についての説明
02hattori11sat03
0
110
Machine Learning for Materials (Lecture 7)
aronwalsh
0
810
トラブルがあったコンペに学ぶデータ分析
tereka114
2
890
ベイズ最適化をゼロから
brainpadpr
2
810
The Incredible Machine: Developer Productivity and the Impact of AI
tomzimmermann
0
390
大規模画像テキストデータのフィルタリング手法の紹介
lyakaap
6
1.5k
MoveItを使った産業用ロボット向け動作作成方法の紹介 / Introduction to creating motion for industrial robots using MoveIt
ry0_ka
0
160
Featured
See All Featured
Speed Design
sergeychernyshev
24
610
Building Adaptive Systems
keathley
38
2.3k
Bash Introduction
62gerente
608
210k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Music & Morning Musume
bryan
46
6.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Building an army of robots
kneath
302
43k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Fireside Chat
paigeccino
34
3k
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
ԁͱԁͷަͷٻΊํ !TIPSB@LVKJSB
w *$1$ͷϥΠϒϥϦΛඋ͍ͯͨ͠Β ʮԁͱԁͷަʯͷίʔυ͕Α͔͘Βͳ͔ͬͨͷ Ͱղઆ͠·͢ɻ w ࢀߟʹͨ͠ίʔυίϨͰ͢
ͷίʔυ pair<P, P> cc_cross(const C& c1, const C& c2) {
double d = abs(c1.p - c2.p); double rc = (d*d + c1.r*c1.r - c2.r*c2.r) / (2*d); double rs = sqrt(c1.r*c1.r - rc*rc); P diff = (c2.p - c1.p) / d; return make_pair(c1.p + diff * P(rc, rs), c1.p + diff * P(rc, -rs)); }
double d = abs(c1.p - c2.p); d c1.p c2.p
double rc = (d*d + c1.r*c1.r - c2.r*c2.r) / (2*d);
cos = a2+b2 c2 2ab ༨ݭఆཧ b c a θ
double rc = (d*d + c1.r*c1.r - c2.r*c2.r) / (2*d);
b bcosθ θ cos = a2 + b2 c2 2ab b cos = a2 + b2 c2 2a
double rs = sqrt(c1.r*c1.r - rc*rc); c1.r rc rs
P diff = (c2.p - c1.p) / d; =>
diffは c1.p→c2.p の単位ベクトル d c1.p c2.p
c1.p + diff * P(rc, rs) ͘ͳΔͷͰ࣍ͷϖʔδϔ rc rs c1.p
diff * P(rc, rs) ͱʁ => rc*diff + rs*rot90(diff) ͷ͜ͱ
di = (x + jy) rot90(di ) = rot90(x + jy) = y + jx di P(rc, rs) = (x + jy) · (rc + jrs ) = rc(x + jy) + rs( y + jx) = rc di + rs rot90(di )
c1.p + diff * P(rc, -rs) ઌ΄Ͳͱಉ༷ rc rs c1.p
ײ w ༨ݭఆཧศརͳΜ͚ͩͲɺΑ͘ΕΔ w KΛֻ͚ͯճసͤ͞ΔςΫχοΫʹؾͮ͘ͷʹ࣌ ͕͔͔ؒͬͯ͠·ͬͨʢిؾܥͳΒৗతʹͬͯ ͍Δͣͳͷʹʣ