すみません。

表題の件で質問です。

例えば四角形と三角形の交点を求めるような、プログラムを作成したいのですが、
どのようなアルゴリズムを組めばいいのかわかりません。

直線と図形との交点算出はできたんですが....。
ちなみに開発言語はc#です。

どなたかわかる方いらっしゃいましたら、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>直線と図形との交点算出はできたんですが....。



それができたのなら、線分と図形との交点も算出できませんか。

線分と図形との交点が算出できれば、図形を線分に分割してそれぞれの交点を求めればいいでしょう。

例えば四角形と三角形の交点は、三角形の3本の線分と四角形の図形との交点を計算するというように。
    • good
    • 0
この回答へのお礼

なんとかできました。

ありがとうございます。

お礼日時:2011/04/24 15:20

「四角形と三角形の交点」というのは, より正確にはどのような点のことを意味するのですか?

この回答への補足

四角形の辺と、三角形の辺の交わる点のことです。

補足日時:2011/04/22 01:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qパワーポイントでの図形選択

例えば、大きな四角の図形を貼り付けます。

その大きな四角の図形の中に小さな図形を貼り付けます。

それから、小さな図形を選択しようとしても、どうしても大きな図形が選択されてしまいます。

小さな図形を選択するにはどうしたらいいのでしょうか?

Aベストアンサー

> 例えば、大きな四角の図形を貼り付けます。
> その大きな四角の図形の中に小さな図形を貼り付けます。
> それから、小さな図形を選択しようとしても、どうしても大きな図形が選択されてしまいます。
> 小さな図形を選択するにはどうしたらいいのでしょうか?

お使いのPowerPointのバージョンが書かれていませんが、2007~2013ですと、
「ホーム」タブの「編集」にある「選択」をクリックして「オブジェクトの選択」をクリックして、
選択したい図形を囲むようにドラッグすると、ドラッグした範囲内にある図形などのオブジェクトはすべて選択されます。
(PPTの場合は、「オブジェクトの選択」は、既定でオンになっています。)

選択されたオブジェクトの中に選択から外したいものがある場合は、「Shit」キーを押しながらクリックします。

『大きな四角の図形の中に小さな図形』がある場合は、小さな図形を囲むようにドラッグします。
(注意して操作すれば、小さな図形だけを選択することはそんなに難しくありません。)

「図形の複数選択(オブジェクトの選択ボタン編)」
http://www.becoolusers.com/office/object-select-button.html

> 例えば、大きな四角の図形を貼り付けます。
> その大きな四角の図形の中に小さな図形を貼り付けます。
> それから、小さな図形を選択しようとしても、どうしても大きな図形が選択されてしまいます。
> 小さな図形を選択するにはどうしたらいいのでしょうか?

お使いのPowerPointのバージョンが書かれていませんが、2007~2013ですと、
「ホーム」タブの「編集」にある「選択」をクリックして「オブジェクトの選択」をクリックして、
選択したい図形を囲むようにドラッグすると、ドラッグした範囲内にある図形...続きを読む

Qc言語 三角形

三つの実数a,b,cを入力して、それらを三辺とする三角形がつくれるかどうかを判定するプログラムをつくる(float型)のですが、
三角形が作れる場合、その三角形は鈍角三角形か鋭角三角形か、または直角三角形かを判断するものに発展させなくてはいけない、
らしいのです。どうやったらいいのかわかりません。教えてください。
回答よろしくお願いします。

Aベストアンサー

1.三角形であるかの判定
三角形の1辺は他の2辺の和より小さいこと
つまり
a<b+c かつ
b<a+c かつ
c<a+b であることが条件です。
2.直角三角形の場合は、
ピタゴラスの定理(別名三平方の定理)
斜辺の2乗=底辺の2乗+高さの2乗が成立します。
すなわち
aの2乗=bの2乗+cの2乗 又は
bの2乗=aの2乗+cの2乗 又は
cの2乗=aの2乗+bの2乗 が成立すれば直角三角形です。
3.鋭角三角形の場合は、
全ての3辺について
1辺の2乗<他の1辺の2乗+もう1辺の2乗 が成立します。
4.上記の何れにもあてはまらないのが、鈍角三角形です。

Q幾何の問題で,R^2上の円周S1と8の字図形が同相でないことを示せ.と

幾何の問題で,R^2上の円周S1と8の字図形が同相でないことを示せ.という問題なのですが,
幾何学が苦手で,どう示せばいいのかわかりません.
どなたか解説お願いします.

Aベストアンサー

S1から任意の一点をとっても連結,
8から「交点の一点」をとれば連結ではない.
終わり

普通はこれで「証明」にはなるんだけども
形式的にきちんと証明の形に整理するのは
自分でやらないと駄目です.
これをやるようなのは普通は数学科の学生さんでしょうから
なおさら自分で整理しましょう.

QCASLIIで三角形の面積を求めたいのですが

CASLIIを使ったプログラムについて教えて下さい。

三角形の面積を求めたいです。

底辺の長さ6
高さ12
の三角形から

底辺2
高さ8
の長方形を切り取った時の面積を求めたいのですが、どうすれば良いでしょうか?

ヒントだけでも、お書きいただければ幸いです

Aベストアンサー

6×12÷2 - 2×8
を計算しろということですか?

とりあえず答えは20なんで、
LAD GR0, 20
でいいんじゃないか、という気もしますが、
それじゃあんまりだというのであれば、
掛け算を計算するサブルーチン(足し算を繰り返す)
を作るんでしょうね。

Qトラック線を描くには?

運動場のトラック線の縮小図…上下は直線、両端は半円のようになったものを描きたいと思います。

今までは、ワードのオートシェイプ→基本図形で四角形や円を組み合わせ、線が重なった部分は、四角形を「線なし・塗りつぶし・白」にして、苦労してやっと描いたのを使っています。(楕円形では、上下部分が直線にはならないので)

もっと、簡単にトラック線を描きたいのですが、フリーソフトまたは安いソフトがありますでしょうか?

花子は、(花子で描けるかどうか知りませんが)機能がありすぎて金額も高いので、購入するのは無理です。

よろしくお願い致します。

Aベストアンサー

ANo.2さんの回答にある方法でよいのでは。
以下の説明は、私が作成した手順を参考までに紹介します。

小学校にあるグランドの作成方法です。( 1000分の1 の縮尺)

[角丸四角形]で、[高さ]を[ 32 mm ]に[幅]を[ 82 mm ]で200メートル
トラックの基準になるものを用意します。
(幅は直線で部分が50mでカーブが円周率から直径約32mになるため)
[オートシェイプの書式設定]→[サイズ]タブから[縦横比を固定する]の
チェックをはずしておきます。

黄色いハンドルを移動させて角の丸部分をを最大の状態にします。
これを[ Ctrl+D ]キーなどで複製を含めて5個用意します。
(以下内側(上側)からトラック1の名称でトラック5までで説明)
レーンの幅は約 1m強になるようなので、それぞれ 2mmから 3mmで増加
するようにします。
以下の数値は[ 2 mm ]増加ですから、狭すぎるなら[ 3 mm ]増加にしても
よいかと思います。

トラック1は基準になるのでそのまま、トラック2を[ 34 mm×84 mm ]に
して、トラック3を[ 36 mm×86 mm ]、トラック4を[ 38 mm×88 mm ]、
トラック5を[ 40 mm×90 mm ]にします。
(小学校だと運動場の全体が 50m × 100m になるようですから、全体図
なら 50mm × 100mm の枠を用意しておくとそれなりのものになります)

トラック1からトラック5まで選択した状態で、[図形描画]ツールバー →
[図形の調整]→[配置/整列]→[上下中央揃え]にして、再度同じ手順から
[左右中央揃え]にしてトラックが綺麗に重なった状態にします。
オートシェイプの線の太さは0.5pt以下にするのがよいかと思います。
これをグループ化すれば出来上がりです。

小さすぎるなら[ Ctrl+Shift ]キーを押しながらドラッグで拡大すれば、
バランスを崩さずに大きくすることができます。

中学校以上だとトラックの長さが[ 400 m ]などのように大きくなります
が、レーンの幅以外は大体同じ比率になるので同じもので兼用できます。

ANo.2さんの回答にある方法でよいのでは。
以下の説明は、私が作成した手順を参考までに紹介します。

小学校にあるグランドの作成方法です。( 1000分の1 の縮尺)

[角丸四角形]で、[高さ]を[ 32 mm ]に[幅]を[ 82 mm ]で200メートル
トラックの基準になるものを用意します。
(幅は直線で部分が50mでカーブが円周率から直径約32mになるため)
[オートシェイプの書式設定]→[サイズ]タブから[縦横比を固定する]の
チェックをはずしておきます。

黄色いハンドルを移動させて角の丸部分をを最大の状態にし...続きを読む

Qlinuxのemasなんですが三角関数を出すプログラム

print for if scanを使って三角関数sinxを出すプログラムを作成せよ
って問題なんですがどうやればいいですか

Aベストアンサー

タイトルには「emas」ってあるんだけど, ひょっとして emacs と書きたかったんだろうか.
そうだとして, emacs lisp でプログラムを作れってことかなぁ? でも, emacs lisp には scan って関数はないよなぁ.... for ってスペシャルフォームもないか.
ということで, 問題をもっと正確に書くとともに, あなたがどこまで理解できていてどこがわからないかをちゃんと書いてください... 自分で考える気はない, というのでなければ.

Q仲間はずれの図形は?(IQテスト要素の問題その3)

upした画像の中で1つだけ仲間はずれの図形があります。それとその仲間はずれの理由は、下記で正しいですか?
判定してください。


仲間はずれの図形:左端の上から1番目
理由:左端の上から1番目の図形以外は、同じ色で且つ"図形を構成する1つの要素"が同じものが、ペアとしてある。
例えば、真ん中の上から2番目の図形と右端の上から3番目の図形は色もオレンジと同じで且つ図形を構成する1つの要素が同じ。


http://cdn.uploda.cc/img/img5005bb52ab525.jpg

Aベストアンサー

仲間はずれの問題は、奇数個ならペア作って行く方法が一般的ですね。
あっているとおもいますよ。

Q線分の交点の保持

いつもお世話になってます。

2つ以上の線分が2次元上にあって、線分が交差した場合それぞれの交点を保ちながらも移動し、交点で回転しながら他の線分とも衝突判定を行う、というアルゴリズムを考えているのですがなかなかうまくいかず悩んでいます。

最終的にはたくさんの線分がくっついて、くねくねしながら移動するようなイメージです。

速度を同じにして、交点を軸に回転させてみたのですが、3本目の線分が交差したときうまくいかなくなってしまいました・・。

ぜひ皆さんの力を貸してください。よろしくお願いします。

Aベストアンサー

まずは、幾何学的に考えてみると、線が2本なら交点一個だから、そこを中心に回転もできるけど、3本あると、各2本取り出す組み合わせが3つで、つまり、交点数は3つで、三角形を形成するので、交点が移動しないことには、線分は移動できないでしょう。
ってことで、回転中心をどの交点にするか、もうちょっと考察が必要。
方法1:交差判定で、交差したら、その交点へ回転中心を移して、その線分上の他の交点は、その交点周りを回転させるとか、
方法2:全交点の中心を求めて、そこに回転中心を移すとか、
方法3:それとも、AとB2つで回転していて、Bが別のCにぶつかったら、ぶつかったBとC2つで回転させて、Aは、離れるとか。
他にもいろいろやりかたはあるでしょう。

Q花子でS字を描きたい

画像等貼れず申し訳ないのですが、教えていただけないでしょうか。

描きたい図形は、以下の通りです。

図形の一部ではなく線です。S字です。

水平方向に伸びた後、直角に上がります。このとき、直角部分が面取りされて丸くなります。
しばらく直角に上がった後、もう一度水平に曲がります。このときの角も面取りされてまるくなります。

直線でS字を描いて角を面取りしようとしたのですが、何故か上手くいきませんでした。
正方形や長方形の角は面取りできるのですが。

何卒よろしくお願いします。

Aベストアンサー

どの機能で描いたのか不明ですが、1本線の組み合わせだとすれば 「連続直線」 で描いて下さい。
作画パレットの《直線・曲線》の中に斜線が途中で折れ曲がった稲妻のようなアイコンがあります、この連続直線で描けば1つの図形として描かれます。
丸め・面取り可能です。

Q3Dプログラミングでは何故2直線の交点を「最近点」として求めるのでしょうか?

http://oshiete1.goo.ne.jp/qa74647.html?ans_count_asc=0
こちらの質問で、
>3D幾何計算ライブラリなどでは直線(線分)同士は、「交点」ではなく「最近点」として求めるのが普通です。
とありますが、何故なのでしょうか?
確かに色々調べてみますと、交点ではなく2直線の距離を求めて、その距離が一定の閾値以下なら交差している、というアルゴリズムが多く見つかりました。
小数が有限なために完全に交差することは殆どないから・・・でしょうか?

Aベストアンサー

> 小数が有限なために完全に交差することは殆どないから・・・でしょうか?

交差することは殆どないからですが、その理由は小数が有限だからでは無いです。

例えば、
・X軸
・相当に単純な図形である(1, 1, 1 )の単位立方体(?)
の12本の線分でさえ、交差しない線分が7本もあります。
ちょっと平行移動、回転するだけで、ほとんどの辺が交差しなくなります。


2Dの世界なら、ほとんどの直線と直線は交差するんですが。
同様に、3Dの世界ではほとんどの平面と平面は交差します。


汎用的に利用されるライブラリでは、指定されたほとんどの直線が交差するだろうなどという都合の良い前提を出すと、実際に使い物にならなくなるからです。

例)
・0~2πの引数しか与えられないであろうcos関数
・同じ値が入っている事は無いであろうソート関数
・割る数にゼロは指定されないであろう割り算、剰余関数


人気Q&Aランキング

おすすめ情報