settingsログイン
メニュー

【回答済み】C言語で2点を指定して直線を引くアルゴリズム

閲覧 3,293
C言語で2点(x1,y1)(x2,y2)を指定すると直線を描画するアルゴリズムをお教えください。よろしくお願いいたします
daigakusei 2016 2/23 質問 C言語

回答 1

役立ち 0
非常に簡単なアルゴリズムでしたら下記のような形になるかと存じます 座標x1,y1から1ピクセルずつx2,y2に近づきながら点を描画していくプログラムです

void line(int x1, int y1, int x2, int y2) {
  int dx = abs(x2-x1), sx = x1<x2 ? 1 : -1;
  int dy = abs(y2-y1), sy = y1<y2 ? 1 : -1;
  int err = (dx>dy ? dx : -dy)/2, e2;
  for(;;){
     setPixel(x1,y1);
     if (x1==x2 && y1==y2) break;
     e2 = err;
     if (e2 >-dx) { err -= dy; x1 += sx; }
     if (e2 < dy) { err += dx;y1 += sy; }
  }
}

CBC Marketing 東京都 文京区 システム構築・ソフトウェア開発

全ての回答 ホームページへ
2016 3/6 回答

プログラミング・開発言語、C言語 の企業/事業者/教室/プロの方のホームページの集客、アクセスアップ、SEO対策効果が期待できるリスティングサイト=Ask-itをぜひご活用ください

Ask IT にようこそ。ここではコミュニティメンバーに質問したり、回答を得ることができます。
ITについて質問したい方へ ITについてプロに質問したい方は会員登録後すぐに質問をする事ができます。

プロフェッショナルの方へ 質問に答えていただけるプロフェッショナルの方は下記をご覧下さい

お気づきの点があれば是非お知らせください
...