C言語での開発環境での線の扱い方
TSP問題を考えています。
1:2次元配列で座標(今回は5点程度)を用意。
(例)sorce[4][4]={{0,1},{3,8},{2,4},{2,7},{8,2}}
2:任意の点をスタート位置に設定。
3:座標同士の距離を計測(ユークリッド距離)。
4:(2)のうち最短距離を選ぶ。
ここまでできています。
これからアルゴリズムとしては、
5:任意のスタート位置から最短距離にある座標を線で繋ぐ。
6:繋いだ先の座標から最短距離にある座標を線で繋ぐ(これを繰り返す。)。
7:もし線の交差があれば、交差している座標間で線を入れ替える。
この処理を行いたいのですが、まず線を引くような、処理をどうやったらC言語で行えるのか(実際に線を引いて出力するわけではありません。)がわかりません。
ですので、5番の方法だけでも結構ですので、教えてください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
線の描画の仕方。
色々な方法が有ると思いますが、windowsならdirectx、LinuxならXlib使うのが一般的かと思います。
http://www.h2.dion.ne.jp/~takusoft/directx8/d3d/ …
http://ja.wikipedia.org/wiki/Xlib
まあ、ちょっとCとかC++だけでは無いような説明になりますが、使い方はX,Y軸の頂点間2点を結ぶ物になります。
No.2
- 回答日時:
> sorce[4][4]={{0,1},{3,8},{2,4},{2,7},{8,2}}
これ、おかしくないですか?
5要素の[2要素の配列]の配列で初期化してるのに、
4要素の[4要素の配列]の配列
になってますよ。
「線」を引くのに必要な情報は「両端の点」です。
なので、その両端を表せるようなデータ構造を考ればよいです。
例1)struct Line{ double x1,y1,x2,y2; } line[N]と宣言
→ i番目の線は 座標(line[i].x1,line[i].y1)から座標(line[i].x2,line[i].y2)まで
今回のケースだと、高々数個の決まった座標しか使わないので、その「座標番号」を使えばよいでしょう。
例2) struct Edge { int snode, enode; } edge[N] ;
→ i番目の線は ノードsnodeから ノードenodeまで
プログラムの作り方次第では、距離も格納できる型にした方がいいかもしれませんし、配列でなくリストで表現した方がいいかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 数学ベクトルに関しての質問 3 2022/05/25 23:21
- 数学 ベクトル方程式(ヘッセの標準形)についての質問 2 2022/04/23 18:00
- その他(法律) 2車線以上であっても、歩行者は横断歩道がない道路を横断できますよね? 3 2022/04/19 15:58
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- 数学 高校数学です。 放物線C:y^2=-2xとCに合同な放物線Dがある。Dは最初放物線y^=2xに一致し 0 2022/12/17 17:34
- 数学 高校数学です。 放物線y^2=-2xとCに合同な放物線Dがある。Dは最初放物線y^=2xに一致してお 2 2022/12/17 13:44
- JavaScript オブジェクト配列の各メンバを任意の式で評価して、その評価値が最大のオブジェクトを返す関数はありますか 2 2023/05/20 15:02
- 数学 2次関数y=ax^2のグラフは点A(4,2)を通っている。y軸上に点BをAB=OB(Oは原点)となる 1 2022/04/08 00:05
- 数学 以前同じ質問をさせていただいたのですが、読み直しても理解できなかったので、再掲します。 写真は楕円の 12 2023/08/22 15:51
- 数学 この問題が分かりません! 右図の直線①②の式は、y=-x+4①、 y=3/4x+1② である。2つの 3 2022/05/04 22:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
c言語でキーボードから2点の座...
-
交差する2線分の交点座標の求め方
-
MATLABの画像処理、2本の直線の...
-
マインクラフト(pc版)で座標...
-
ガウシアンフィルタのCプログラム
-
回転する矩形同士の当たり判定...
-
位置座標からx軸となす角度(ラ...
-
エクセルである点からの距離で...
-
ピクチャボックスの座標取得
-
虚数は我々日常生活の身近なと...
-
Excel VBA ・・・教えてください
-
始点、終点の二つの座標と半径...
-
プログラミングの問題について...
-
visualbasic でform上に正三角...
-
画像回転について
-
C アルゴリズム(モンテカルロ法)
-
スクリーン座標からワールド座...
-
重力の計算
-
PPTのVBA スライド右下端の座...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルで回転する座標の出し方
-
エクセルである点からの距離で...
-
3次元空間上の2つの座標から...
-
閉図形の座標の配列が右回りか...
-
ダイアログ内コントロールの位...
-
始点、終点の二つの座標と半径...
-
座標を持った平面範囲に座標を...
-
空間上の二点を結ぶ直線上に任...
-
エクセルシート上のマウスポイ...
-
多角形の内部かどうか判定する方法
-
ワード上Shapeの位置情報を統一...
-
Excel VBA で自在に図形を変化...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
シーケンサー(PLC?)で制...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
VB6のPrinter.ScaleWidth に対...
おすすめ情報