gpt4 book ai didi

c# - 如何绘制包含负点的多边形?在 C#

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:24 24 4
gpt4 key购买 nike

我正在做 C# 项目。我发现了一个问题,但无法找到这个问题的答案,这就是我在这里发帖的原因/我正在用 C# 实现程序平面图生成。首先我需要在给定的点上绘制一个多边形来生成网格。点数可以是正数也可以是负数。积分会 float 。

根据 Microsoft 文档,我可以为 float 的正点绘制多边形,但是当我将点更改为负点时,它不会在表单上绘制任何内容。

此方法在角落绘制 x,y 坐标 0,0。

代码示例public void DrawPolygonPointF(PaintEventArgs e){

// Create pen.
Pen blackPen = new Pen(Color.Black, 3);

// Create points that define polygon.
PointF point1 = new PointF(50.0F, 50.0F);
PointF point2 = new PointF(100.0F, 25.0F);
PointF point3 = new PointF(200.0F, 5.0F);
PointF point4 = new PointF(250.0F, 50.0F);
PointF point5 = new PointF(300.0F, 100.0F);
PointF point6 = new PointF(350.0F, 200.0F);
PointF point7 = new PointF(250.0F, 250.0F);
PointF[] curvePoints =
{
point1,
point2,
point3,
point4,
point5,
point6,
point7
};

// Draw polygon curve to screen.
e.Graphics.DrawPolygon(blackPen, curvePoints);

我有负坐标值,例如 pointF(300,-250) 此方法不会为负坐标值绘制任何内容。所以请给我一个简短的解决方案,因为我对绘图了解不多。

谢谢

最佳答案

在 C# 中,0,0 是屏幕的左上角。所以负值位于表单的左边缘或上边缘。您需要将坐标从坐标空间转换为表单坐标。要放置 0,0 死点,您可以这样做:

int screenX = myX + windowWidth / 2;
int screenY = myY + windowHeight / 2;

关于c# - 如何绘制包含负点的多边形?在 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40181304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com