tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル多角形の描画について
記事No11097
投稿日: 2013/06/21(Fri) 11:20
投稿者やまさき
はじめまして。VisualBasic2010を使用しています。
以下の構文で 多角形を描画しています。
Dim pp As Point() = {New Point(0, 0), New Point(2, 1),New Point(1, 2)}
この場合だと三角形を描画できますが、三角形の場合もあれば、四角形、多角形の場合があります。

つまり3点の座標を与えられた場合は三角形、5点なら五角形を描画しなければなりません。
何点の場合でも対応できる構文にするにはどうすればよいのでしょうか?

[ツリー表示へ]
タイトルRe: 多角形の描画について
記事No11098
投稿日: 2013/06/21(Fri) 11:59
投稿者Hongliang
その構文では単に座標の配列なだけで、肝心の描画処理が存在していませんが……。

DrawPolygon/FillPolygonを使えば良いんでは。

[ツリー表示へ]
タイトルRe^2: 多角形の描画について
記事No11099
投稿日: 2013/06/21(Fri) 12:07
投稿者やまさき
> その構文では単に座標の配列なだけで、肝心の描画処理が存在していませんが……。
>
> DrawPolygon/FillPolygonを使えば良いんでは。

そこはあえて省略しています。

[ツリー表示へ]
タイトルRe: 多角形の描画について
記事No11100
投稿日: 2013/06/21(Fri) 14:08
投稿者VBレスキュー(花ちゃん)
> つまり3点の座標を与えられた場合は三角形、5点なら五角形を描画しなければなりません。
> 何点の場合でも対応できる構文にするにはどうすればよいのでしょうか?

ひょっとしてこういう事ですか?

    Dim g As Graphics = PictureBox1.CreateGraphics
    Dim BPen As New Pen(Color.Black, 1)
    Dim pos(4) As Point
    Dim x(4) As Integer
    Dim y(4) As Integer
    x(0) = 100 : y(0) = 180
    x(1) = 380 : y(1) = 180
    x(2) = 150 : y(2) = 350
    x(3) = 240 : y(3) = 80
    x(4) = 330 : y(4) = 350

    For i As Integer = 0 To 4
        pos(i) = New Point(x(i), y(i))
    Next
    g.DrawPolygon(BPen, pos)
    BPen.Dispose()
    g.Dispose()

もしかして、マルチポストですか?

[ツリー表示へ]
タイトルRe^2: 多角形の描画について
記事No11101
投稿日: 2013/06/21(Fri) 15:44
投稿者やまさき
VBレスキュー(花ちゃん)様

ありがとうございます。返答していただいた事で無事解決いたしました。

[ツリー表示へ]