使用ToPointsArray将T的列表转换为Array [英] Converting list of T to Array using ToPointsArray
本文介绍了使用ToPointsArray将T的列表转换为Array的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个C#代码
if ( shapeChecker.IsCircle( edgePoints, out center, out radius ) )
{
g.DrawEllipse( yellowPen,
(float) ( center.X - radius ), (float) ( center.Y - radius ),
(float) ( radius * 2 ), (float) ( radius * 2 ) );
}
else
{
List<IntPoint> corners;
// is triangle or quadrilateral
if ( shapeChecker.IsConvexPolygon( edgePoints, out corners ) )
{
// get sub-type
PolygonSubType subType = shapeChecker.CheckPolygonSubType( corners );
Pen pen;
if ( subType == PolygonSubType.Unknown )
{
pen = ( corners.Count == 4 ) ? redPen : bluePen;
}
else
{
pen = ( corners.Count == 4 ) ? brownPen : greenPen;
}
g.DrawPolygon( pen, ToPointsArray( corners ) );
}
}
运行良好.但是当我使用等效的VB.NET代码时.这不起作用-
it's working well. But when I use an equivalent VB.NET code. This doesn't work-
' locate objects using blob counter
Dim blobCounter As New BlobCounter()
blobCounter.ProcessImage(inv_img)
Dim blobs As Blob() = blobCounter.GetObjectsInformation()
' create Graphics object to draw on the image and a pen
Dim g As Graphics = Graphics.FromImage(inv_img)
Dim bluePen As New Pen(Color.Blue, 2)
' check each object and draw circle around objects, which
' are recognized as circles
Dim i As Integer = 0, n As Integer = blobs.Length
While i < n
Dim edgePoints As List(Of IntPoint) = blobCounter.GetBlobsEdgePoints(blobs(i))
Dim corners As List(Of IntPoint) = PointsCloud.FindQuadrilateralCorners(edgePoints)
g.DrawPolygon(bluePen, ToPointsArray(corners))
i += 1
End While
该错误指向ToPointsArray函数.该如何解决?
The error is pointed on ToPointsArray function. How to solve this?
推荐答案
那不是等效的,仅使用有形的VB instanc转换器就可以了.
That is not the equivalent, simply using VB instanc converter from tangible I get this.
If shapeChecker.IsCircle(edgePoints, center, radius) Then
g.DrawEllipse(yellowPen, CSng(center.X - radius), CSng(center.Y - radius), CSng(radius * 2), CSng(radius * 2))
Else
Dim corners As List(Of IntPoint) = Nothing
' is triangle or quadrilateral
If shapeChecker.IsConvexPolygon(edgePoints, corners) Then
' get sub-type
Dim subType As PolygonSubType = shapeChecker.CheckPolygonSubType(corners)
Dim pen As Pen
If subType Is PolygonSubType.Unknown Then
pen = If(corners.Count = 4, redPen, bluePen)
Else
pen = If(corners.Count = 4, brownPen, greenPen)
End If
g.DrawPolygon(pen, ToPointsArray(corners))
End If
End If
这篇关于使用ToPointsArray将T的列表转换为Array的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文