atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
KidsCindy@Wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
KidsCindy@Wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
KidsCindy@Wiki
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • KidsCindy@Wiki
  • 円と円の交点に関する考察

KidsCindy@Wiki

円と円の交点に関する考察

最終更新:2006年07月31日 11:37

匿名ユーザー

- view
メンバー限定 登録/ログイン
現状のEvaluateはこうなっている。

case CONST_MEET_CC:
	if(CInput1==NULL || CInput2==NULL || POutput==NULL){
		return true;
	}
	c1x=CInput1->xx;c1y=CInput1->yy;c1r=CInput1->rr;
	c2x=CInput2->xx;c2y=CInput2->yy;c2r=CInput2->rr;
	lx=CComplex(2.0,0.0)*(c1x-c2x);
	ly=CComplex(2.0,0.0)*(c1y-c2y);
	lz=c1r-c2r-c1x*c1x-c1y*c1y+c2x*c2x+c2y*c2y;
	if(lx.zerop() && ly.zerop()){
		POutput->xx==CComplex(1.0,0.0);
		POutput->yy==CComplex(1.0,0.0);
		POutput->zz==CComplex(0.0,0.0);
		return true;
	}
	if(ly.zerop()){
		Meet_CL(ly,lx,lz,c1y,c1x,c1r,&yy1,&yy2);
		xx1 = xx2 = CComplex(-1.0,0.0)* lz / lx;	
	}
	else {
		Meet_CL(lx,ly,lz,c1x,c1y,c1r,&xx1,&xx2);
		yy1 = CComplex(-1.0,0.0)* (lx * xx1 + lz ) / ly;
		yy2 = CComplex(-1.0,0.0)* (lx * xx2 + lz ) / ly;	
	}
	n1=norm(xx1-para1)+norm(yy1-para2);
	n2=norm(xx2-para1)+norm(yy2-para2);
	if(n1+0.01<n2){
		POutput->xx = xx1;
		para1 = xx1;
		POutput->yy = yy1;
		para2 = yy1;
	}	
	else {
		POutput->xx = xx2;
		para1 = xx2;
		POutput->yy = yy2;
		para2 = yy2;
	}	
	POutput->zz = CComplex(1.0,0.0);
	break;

つまり、まず二つの交点を(xx1,yy1),(xx2,yy2)で求めておいて、今の場所(para1,para2)からみて近い方を選んでいる。(para1,para2)は「前回の交点」なわけだ。
 そこで、次のような作戦はどうか。
xx1が実数でなければyy1,xx2,yy2も実数でない。(なぜかというと、実数係数の連立2次方程式を解いているので。)一方で、(para1,para2)が実数の組だったならば、ここで、「接点を通過」していることがわかる。接点では(para1,para2)両方ともがそれぞれの方程式の重根になっている。一方で、xx1,xx2はpara1ととても近いはずである。このことから、「para1から見て(複素数平面上で)右側に見える方へ進む。」とする。
xx1が実数で(したがって、yy1,xx2,yy2も実数)para1が複素数のときにもやはり、「para1から見て(複素数平面上で)右側に見える方へ進む。」というルールで次の道を決める。
これで数学的には「重根を右によける」という処理と同じことになる。
(7月31日、あはら)

解決
「円と円の交点に関する考察」をウィキ内検索
LINE
シェア
Tweet
KidsCindy@Wiki
記事メニュー
メニュー
  • トップページ
  • コンセプト
  • 名称について
  • ダウンロード
  • マニュアル・FAQ
  • サンプルファイル
  • バージョンアップ履歴
  • KidsCindyデータ構造
  • KidsCindy作図のアイディア
  • KidsCindyメニューのアイディア
  • KidsCindyモードのアイディア
  • KidsCindyスクリプトのアイディア
  • KidsCindyアピアランスのアイディア
  • KidsCindy音のアイディア?
  • KidsCindyアニメーションのアイディア
  • KidsCindyバグ鳥
  • KSEG
  • データ構造およびメンバー関数(メモ書き)
  • 雑談
記事メニュー2

更新履歴

取得中です。
人気記事ランキング
  1. ダウンロード
  2. 線分の両端に関するメモ6
もっと見る
最近更新されたページ
  • 5968日前

    ダウンロード
  • 5968日前

    CindyモードとKSEGモードの違いは何か
  • 6185日前

    保存時と読み込み時のウィンドウサイズが異なる場合の文字の調整について
  • 6185日前

    KidsCindyバグ鳥
  • 6185日前

    bool MyCanvas::DrawOneText
  • 6185日前

    bool MyCanvas::DrawMultiText
  • 6185日前

    bool MyCanvas::GetMultiTextSize
  • 6185日前

    void MyCanvas::convert_textsize
  • 6185日前

    通常テキスト表示
  • 6185日前

    bool MyCanvas::DrawTexts
もっと見る
人気記事ランキング
  1. ダウンロード
  2. 線分の両端に関するメモ6
もっと見る
最近更新されたページ
  • 5968日前

    ダウンロード
  • 5968日前

    CindyモードとKSEGモードの違いは何か
  • 6185日前

    保存時と読み込み時のウィンドウサイズが異なる場合の文字の調整について
  • 6185日前

    KidsCindyバグ鳥
  • 6185日前

    bool MyCanvas::DrawOneText
  • 6185日前

    bool MyCanvas::DrawMultiText
  • 6185日前

    bool MyCanvas::GetMultiTextSize
  • 6185日前

    void MyCanvas::convert_textsize
  • 6185日前

    通常テキスト表示
  • 6185日前

    bool MyCanvas::DrawTexts
もっと見る
ウィキ募集バナー
急上昇Wikiランキング

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. asagaolabo @ ポップン百科大事典
  2. 将棋ライク攻略@wiki
  3. NIKKEぺでぃあ
  4. 検索してはいけない言葉 @ ウィキ
  5. ElectriarCode @ ウィキ
  6. Fate/Grand Order @wiki 【FGO】
  7. モンスター烈伝オレカバトル@wiki
  8. 星の翼(Starward) 日本語wiki @ ウィキ
  9. 東方同人CDの歌詞@Wiki
  10. 千鳥の鬼レンチャン サビだけカラオケデータベース
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ゲームカタログ@Wiki ~名作からクソゲーまで~
  3. ストグラ まとめ @ウィキ
  4. 初音ミク Wiki
  5. 発車メロディーwiki
  6. 検索してはいけない言葉 @ ウィキ
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
もっと見る
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. MADTOWNGTAまとめwiki
  3. まどドラ攻略wiki
  4. ちいぽけ攻略
  5. SurrounDead 攻略 (非公式wiki)
  6. Shoboid RPまとめwiki
  7. シュガードール情報まとめウィキ
  8. 戦国ダイナスティ攻略Wiki@ウィキ
  9. ソニックレーシング クロスワールド @ ウィキ
  10. 20XX @ ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. angler - MADTOWNGTAまとめwiki
  2. 参加者一覧 - MADTOWNGTAまとめwiki
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  5. SILENT HILL f - アニヲタWiki(仮)
  6. ギャプラン - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  7. XVI - MADTOWNGTAまとめwiki
  8. 模擬ドラフト結果 - おんJ模擬ドラフトまとめwiki
  9. 参加者一覧 - ストグラ まとめ @ウィキ
  10. 白狐 - MADTOWNGTAまとめwiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.