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
34
円と円の交点の求め方
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
18
14k
Osaka.Stan#5 LT プログラミングコンテストのデータを分析した話
arosh
1
5.7k
簡潔データ構造輪講資料(順列)
arosh
1
6.8k
Pythonにおける日本語処理
arosh
1
1.9k
FM-index による全文検索
arosh
0
17
円と円の外接線の求め方
arosh
0
21
Other Decks in Science
See All in Science
[NeurIPS 2023 論文読み会] Wasserstein Quantum Monte Carlo
stakaya
0
360
早わかり W3C Community Group
takanorip
0
280
研究・教育・産学連携の循環の実践
sshimizu2006
0
230
AI(人工知能)の過去・現在・未来 —AIは人間を超えるのか—
tagtag
0
120
WeMeet Group - 採用資料
wemeet
0
160
汎用原子シミュレータMatlantis のご紹介
matlantis
0
140
名古屋市立大学データサイエンス学部 夏のオープンキャンパス模擬授業20230818
ncu_ds
0
1.3k
AI(人工知能)の過去・現在・未来 —AIは人間を超えるのか—
tagtag
0
230
2023-08-02_spatialLIBD_BioC2023_demo
lcolladotor
0
110
A Theory of Scrum Team Effectiveness 〜『ゾンビスクラムサバイバルガイド』の裏側にある科学〜
bonotake
14
5.2k
「国と音楽」 ~spotifyrを用いて~ #muana
bob3bob3
2
340
『データ可視化学入門』を PythonからRに翻訳した話
bob3bob3
1
370
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.4k
GitHub's CSS Performance
jonrohan
1025
450k
Visualization
eitanlees
137
14k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
A better future with KSS
kneath
231
16k
Atom: Resistance is Futile
akmur
260
25k
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
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Λֻ͚ͯճసͤ͞ΔςΫχοΫʹؾͮ͘ͷʹ࣌ ͕͔͔ؒͬͯ͠·ͬͨʢిؾܥͳΒৗతʹͬͯ ͍Δͣͳͷʹʣ