PointF 函数中的整数与单一格式

Hui Liu-MSFT 48,706 信誉分 Microsoft 外部员工
2024-04-02T07:29:42.8333333+00:00

我正在绘制一些函数的图形,我需要对以下代码片段进行一些澄清。

For x = -175 To 175 Step 0.1
    y = -CSng((x ^ 2) / 100)
    pts.Add(New PointF(x, y))
Next
gPath.AddLines(pts.ToArray())


For x = -175 To 175 Step 0.1
    y = -CSng((x ^ 2) / 100)
    g.DrawLine(Pens.LightGray, New Point(x,-y), New Point(x, y))
Next

在第一个代码片段中,PoinF 似乎将 X 值存储为整数,将 Y 值存储为十进制数,这很好,没问题。 例如,x 和 y 值如下所示:

×Y-175 306.25

但是在第二个代码片段中,新点必须只是整数??

有人可以向我解释为什么会这样吗?也许点函数允许小数,而 Drawline 不允许?

还是 PointF 函数自动转换为整数?

一种方法是否比另一种方法更好使用,因为我还使用抗锯齿来更平滑地平滑我的图形函数?

先谢谢你

Note:此问题总结整理于:Integer vs single format in PointF function

开发人员技术 | VB
0 个注释 无注释
{count} 票

问题作者接受的答案
  1. 匿名
    2024-04-02T07:52:18.56+00:00

    Point 使用整数坐标,但 PointF 使用浮动坐标。 在这种情况下,您需要在 Graphics.DrawLine 函数中使用 PointF 参数。

    g.DrawLine(Pens.LightGray, New PointF(x, -y), New PointF(x, y))  
    

    希望对您有所帮助。


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。