トップページ > 記事閲覧
太い折れ線を描画したい
名前:bane 日時: 2021/09/10 21:45

DrawLineAAを使用して折れ線を描画しようと思ったのですが、例えば float x[4] = { 200.0f, 400.0f, 600.0f, 800.0f }; float y[4] = { 200.0f, 400.0f, 200.0f, 400.0f }; float t = 20.0f; for (int k = 0; k < 3; k++) DrawLineAA(x[k], y[k], x[k + 1], y[k + 1], 0xffffff, t); のようにすると頂点部分で切れ目ができてしまいます。 丸く補完するためにfor部分を for (int k = 0; k < 3; k++) { if (k!=0) DrawCircleAA(x[k], y[k], t / 2, 16, 0xffffff, TRUE); DrawLineAA(x[k], y[k], x[k + 1], y[k + 1], 0xffffff, t); } とすると円が想定より大きく描画されてしまいます。 頂点で尖るような補完(V字のようなもの)も考えましたがいい方法が浮かびませんでした。 切れ目を作らずに太い折れ線を描画する良い方法がありましたら教えていただきたいです。
メンテ

Page: 1 |

Re: 太い折れ線を描画したい ( No.1 )
名前:管理人 日時:2021/09/11 05:34

for (int k = 0; k < 3; k++) { if (k!=0) DrawCircleAA(x[k], y[k], t / 2, 16, 0xffffff, TRUE); DrawLineAA(x[k], y[k], x[k + 1], y[k + 1], 0xffffff, t); } ↑ こちらの t / 2 の箇所を t / 2 - 1 としたところ綺麗に隙間が埋まりましたので よろしければお試しください m(_ _)m
メンテ
Re: 太い折れ線を描画したい ( No.2 )
名前:bane (解決済) 日時:2021/09/14 17:42

tを色々変えてもきれいに埋まるのを確認できました。 ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存