ピクチャーボックスに多角形を描くときの座標の設定方法を教えていただけませんか。
下記プログラムで三角形(P1,P2,P3)は描けましたが
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Button1_Click()
Dim MyBrush As New SolidBrush(Color.Blue)
Dim p1 As New Point(500, 50)
Dim p2 As New Point(100, 625)
Dim p3 As New Point(800, 855)
Dim PN As Point() = {p1, p2, p3}
pg.FillPolygon(MyBrush, PN)
fg.PictureBox1.Image = bmp
End Sub
但しfgはフォームのインスタンス、pg、bmp は
Public bmp As New Bitmap(960, 960)
Public pg As Graphics
pg = Graphics.FromImage(bmp) のように記述してあります。
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
pg.FillPolygon(MyBrush, PN) を記述する前にp1〜p3の座標を
例えば p1.X=0 のように変えていろいろな三角形を描きたいのですがうまくいきません。どうやって座標を変えればよいのか教えて下さい、よろしくお願いします。
>p1.X=0 のように変えていろいろな三角形を描きたいのですが
変えたい値を入れるから"変数"と言います。普通に変数に代入
して設定して下さい。
また、どこからどういった手段で p1.X=0 の値を入力するのか?
質問に全く示されておりません。こういった質問をされる方は後
からどんどん条件を増やしていきます。『その方法は取りたくあり
ません』『それでは都合が悪いです』必要な条件は全て挙げるか
仕様は自分で決定しておいて下さい。
今回の質問はタイトルに『多角形』とあります。任意の数の座標
を入力できるような手段(リストビューに点の座標を登録するなど)
を考えて↓のサンプルでの関数 MakePoints の中で Point() の
配列を作るような形に改造すれば汎用性が増しますね。
[VB.NET]
Option Strict On
Public Class Form1
Inherits System.Windows.Forms.Form
[省略]" Windows フォーム デザイナで生成されたコード "
Public bmp As New Bitmap(960, 960)
Public pg As Graphics
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
pg = Graphics.FromImage(bmp)
Dim MyBrush As New SolidBrush(Color.Blue)
Dim PN As Point() = Me.MakePoints
pg.FillPolygon(MyBrush, PN)
Me.PictureBox1.Image = bmp
End Sub
Private Function MakePoints() As Point()
Dim p1_X As Integer = CInt(Me.TextBox1.Text)
Dim p1 As New Point(p1_X, 50)
Dim p2 As New Point(100, 625)
Dim p3 As New Point(800, 855)
Dim PN As Point() = {p1, p2, p3}
Return PN
End Function
End Class
解決しました
ありがとうございました
ツイート | ![]() |