인사말;IronPython : GraphicsPath에 점의 배열 생성 및 추가
System.Drawing.Point 인스턴스의 인스턴스를 올바르게 인스턴스화하는 데 문제가 있으며 WinForms 응용 프로그램에서 IronPython을 사용하여 GDI + GraphicsPath 인스턴스에 점 배열을 추가하는 데 문제가 있습니다. 다음 코드는 컴파일 또는 IronPython의 2.6 SharpDevelop 3.2에서 제대로 빌드 :
위의 코드를 기반으로import System.Drawing
import System.Drawing.Drawing2D
import System.Windows.Forms
from System import Array
from System.Drawing import Pen, Point
from System.Drawing.Drawing2D import GraphicsPath, CustomLineCap
from System.Windows.Forms import *
class MainForm(Form):
def __init__(self):
self.InitializeComponent()
def InitializeComponent(self):
self.SuspendLayout()
#
# MainForm
#
self.ClientSize = System.Drawing.Size(284, 264)
self.Name = "MainForm"
self.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
self.Text = "GDI Lines"
self.Paint += self.MainFormPaint
self.ResumeLayout(False)
def MainFormPaint(self, sender, e):
graphicContext = e.Graphics
bluePen = Pen(Color.Blue, 1)
points = Array.CreateInstance(Point, 9)
points[0] = Point(10, 10)
points[1] = Point(15, 10)
points[2] = Point(20, 15)
points[3] = Point(20, 20)
points[4] = Point(15, 25)
points[5] = Point(10, 25)
points[6] = Point(5, 20)
points[7] = Point(5, 15)
points[8] = Point(10, 10)
graphicsPath = GraphicsPath()
graphicsPath.AddLines(points)
graphicContext.SmoothingMode = SmoothingMode.AntiAlias
lineCap = CustomLineCap(nil, graphicsPath)
lineCap.BaseInset = 0
lineCap.WidthScale = 1
lineCap.StrokeJoin = LineJoin.Miter
bluePen.CustomStartCap = lineCap
bluePen.CustomEndCap = lineCap
graphicContext.DrawLine(bluePen, 50, 150, 200, 150)
graphicContext.DrawLine(bluePen, 150, 50, 150, 200)
lineCap.Dispose()
graphicsPath.Dispose()
bluePen.Dispose()
, 나는 각 줄의 끝에 작은 타원으로, 파란색 선 perpendicualr이 그려보고 기다리고 있었다. 위의 현재 scipting 코드를 사용하여 GDI + 런타임 오류 빨간색 X가 그려집니다. 나는 무엇을 놓치고 잘못하고 있는가? 또한, System.Drawing.Point 값의 배열을 인스턴스화하는 더 간단하거나보다 간결한 방법이 있습니까?
은 시간을 사전에 감사합니다 도움이 ... 공평