複数の地点があります。各地点の間の距離データが、(5,17)=35のように、与えられています。地点5と地点17の間の距離が、35という意味です。

このように、多数の地点間の距離データが設定されているとして、各地点を幾何的に描画する方法を知りたいのです。
各地点の距離に比例した長さだけ、正しく表示されていれば、実際の配置はどこでも構いません。有償ソフトであれば、ExcelやMathematicaは持っています。無償のツールがあれば、入手先を知りたく思います。
すみませんが、よろしくお願いいたします。
追伸:具体的には、(1,1)=0 (1,2)=7 (1,3)=15...... (2,1)=7 (2,2)=0 (2,3)=9......などのデータが対象です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/05/20 11:30:07
  • 終了:--

回答(7件)

id:kahochu No.1

かほちゅう回答回数162ベストアンサー獲得回数02004/05/20 13:30:13

ポイント10pt

これなんかどうでしょう・・・。

id:dalian3 No.2

dalian3回答回数376ベストアンサー獲得回数12004/05/20 13:56:25

ポイント10pt

http://www.jwcad.net/

Jw_cadのページ

2回目の回答なのでポイントは結構です。

Jw_cadは、フリーウェアのCADソフトです。

CADを使って、三点を決めるのは、中学校の数学の作図と同じです。

最初に指定された距離を隔ててA,B2点を描きます。

次に、Aを中心にして線分ACを半径とする円を描きます。

更に、Bを中止にして線分BCを半径とする円を描きます。

二つの円の交点が、Cの位置になります。最後に、二つの円を消せば、A,B,Cの点だけが残ります。

二つのC点がありますがどちらが正しいか、この時点では分かりません。

後で、点Dとかの位置関係で、どちらか決まるのでしょう。

同様に、点B,C,Dの三角形を描けば、Dの位置が決まります。

id:taro-r No.3

taro-r回答回数29ベストアンサー獲得回数02004/05/20 11:46:44

ポイント50pt

すべての組の距離がわかっていて,全体の位置を求める手法は「多次元尺度法」とか「多次元尺度構成法」とかいいます。

リンクは「多次元尺度」で検索した結果です。説明とか,一部プログラムもダウンロードできるみたいですが,使用してないのでこれ以上は何とも言えません。

id:Mugicha2004

学術的なキーワードが分かっただけでも、おお助かりです。ありがとうございます。描画のサンプルソースなどがあるサイトの紹介を期待しています。

2004/05/20 11:57:26
id:takasiym No.4

takasiym回答回数165ベストアンサー獲得回数02004/05/20 11:52:50

上記ダミーです。

各地点を順番に直線で結ぶ事をお考えですか?

つまり地点1と地点2、地点2と地点3、・・・地点n-1と地点n、地点nと地点1、

の各地点間を直線で結ぶという事でしょうか?

その場合、一つ問題点があると思います。

各地点間の距離が分かったとしても、

角度が分からない以上、

描画する図形は一意的に決まらないと思います。

したがって、以下のように地点間の相関を表してみては如何でしょうか?

# 不完全なのであくまで参考程度にして下さい!!

(i,j)=(r,θ)

i,j:地点番号(0<i<n-1, j=i+1, n:自然数)

r:地点間の距離

θ:iとjを結んだ直線がなす角

id:Mugicha2004

順番や配置はどのようなものでも構いません。質問にも書きましたが、地点間の距離だけが、正しく反映されていればよいのです。

2004/05/20 11:58:59
id:garyo No.5

garyo回答回数1782ベストアンサー獲得回数962004/05/20 11:57:15

ポイント10pt

URLはダミーです。

以下回答になっていない場合はポイントは要りません。

Excelを利用した方法を考えて見ます。

各点が空間上にあり、互いに反発力を及ぼしあっていると考えます。

また、距離の指定してある2点は距離が短い場合は反発力、長い場合は引力が働くとします。

計算としては、n-1個の点に関しては、x,y,zの項目の差の何分の1かを加え、

距離の指定してある点に対しては、距離を計算しそれから指定の長さの差分に比例した大きさで近づけるようにします。

(言葉で書くのは疲れますね。すみません)

最後は(x+z/sqr(2),y+z/sqr(2))の点でグラフを書けば各点の距離が指定の長さになると思います。

n個の点があるとn(n-1)/2個の

id:Mugicha2004

ご回答、ありがとうございます。ちょっと考えてみましたが、希望の条件と違うように思いました。すみません。

2004/05/20 13:06:04
id:aki73ix No.6

aki73ix回答回数5224ベストアンサー獲得回数272004/05/20 12:26:23

ポイント10pt

URLはダミーです

マクロかいてみようかと思ったのですが

外出先でExcelがないので

まず 1つめのポイントを原点[0,0]配置します

2つめをY軸上の(1,2)=nの場合 [n,0]に配置します

3つめを(1,3),(1,2)から求めます(解が2つになるのでy>=0かx>=0)になる方を使用します

4つめ以降は 既知の2つのポイントから2つのとりうるポイントを求めた後3つめのポイントから近い辺りになる方を使用します

距離 A-Bをa A-Cをc B-Cをbとしたとき

A(0,0)

B(a,0)

C(x,y)

x^2+y^2=c^2

(x-a)^2+y^2=b^2

2ax-a^2=c^2-b^2

x=((c^2-b^2)+a^2)/(2a)

のように求めます

id:Mugicha2004

流れはおおよそ、理解できます。ちょっとややこしいコーディングが必要になりそうですね。

2004/05/20 14:19:35
id:dalian3 No.7

dalian3回答回数376ベストアンサー獲得回数12004/05/20 12:29:52

ポイント10pt

3点間の距離が分かれば、三角形の形が決まります。

例えば点1,2,3で三角形を作る。

2,3,4で三角形を作る。

1,2,4で三角形を作る。

こうしていけば、配置は決まるはずです。

一般にCADソフトで出来ると思います。

詳しく分かりませんが、このソフトで三角形が描けそうです。但しMAC専用です。

id:Mugicha2004

ご回答、ありがとうございました。taro-rさんのご指摘、「多次元尺度構成法」をキーワードに、手法を調べています。手がかりになりそうです。ありがとうございました。

2004/05/20 14:20:36
  • id:kiichigo
    グラフ作成

    Sun の Java SDK の GraphLayoutデモアプレットでいけるような気がします。

    http://java.sun.com/applets/jdk/1.4/demo/applets/GraphLayout/example1.html
  • id:garyo
    勘違い

    三次元での話かと思ってました。
  • id:kahochu
    無念・・・

    誰か未閲覧の回答を開いてくれないかなぁ・・・。
    ちょっと自信ありだったんよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません