2014-02-05 VisualBasic2010のFillPolygonで三角形を描くとき気になったこと VB.NET #ソフトウェア ┠Pixtack紫陽花 二等辺三角形 10x10ピクセルの領域いっぱいに描画するとこうなる FillPolygon(緑, 3つの頂点) 頂点を指定するときは0上の頂点は横幅/2だから5になって 右下は10,10になるからはみ出ている 頂点を指定するときは0からが基準になるから? 左下と右下の頂点から1引いてみた まだ右下が削られている? 更に1ピクセルづつ小さくしてみた 削られてはいなかったみたい 横幅を奇数の9にして 高さ幅から1引いてみた 多分これで正しいんだと思う アンチエイリアスをやめてみた なんか縮んだけど形はOK 問題は横幅が偶数のとき 1引くのをやめてみた 左下が1ピクセル足りないというかコレジャナイ感 まとめ FillPolygonで図形を描くとき Bitmapの大きさから-1する アンチエイリアスをかけないと小さくなる 上の頂点の時も-1した方がいいのか? (10-1)/2は整数だと4になっていた 小数点有りで4.5の場合の座標は4になるみたい アンチエイリアス有りで 小数点有りにしたら横幅が偶数のときもいい感じになった まとめ 頂点の計算もBitmapの横幅から-1してから アンチエイリアス有りなら頂点の計算は小数点有りがいいし 横幅が偶数のときでも奇数でも期待通りになる アンチエイリアスなしなら横幅が奇数の時はいいけど 偶数の時はどうやっても微妙