【问题标题】:draw line in XNA using float values使用浮点值在 XNA 中画线
【发布时间】:2013-03-12 10:03:32
【问题描述】:

如何使用浮点值而不是整数在 XNA (C#) 中画线,因为整数会消除点后的值

喜欢:20.12

【问题讨论】:

  • 绘图通常不涉及使用PointPointf 结构吗?那为什么要使用intfloat
  • 也许这会有所帮助:How do I draw lines using XNA?
  • @Nolonar 当我必须画一条线时,我需要以下步骤 只需创建一个快速纹理,例如: Texture2D SimpleTexture = new Texture2D(GraphicsDevice, 1, 1, false, SurfaceFormat.Color);然后使用该纹理画一条线: this.spriteBatch.Draw(SimpleTexture, new Rectangle(100, 100, 100, 1), Color.Blue);这就是我需要矩形对象来画一条线,矩形构造函数需要 int 参数而不是浮点数。
  • 恐怕你必须用 3D 来代替。我一直在环顾四周,但找不到支持float 坐标的Rectangle。对不起。
  • 好的,但是你有什么技巧可以用浮点值画线吗?

标签: c# winforms xna-4.0


【解决方案1】:

您可以尝试使用SpriteBatch.Draw (Texture2D, Vector2, Nullable<Rectangle>, Color, Single, Vector2, Vector2, SpriteEffects, Single) method。 您需要先创建一个代表您的线路的Texture2D

Vector2 pos = new Vector2(20.12F, 20.12F);
Vector2 scale = new Vector2(150.23F, 1);
Color myColor = Color.Blue;

Texture2D simpleTexture = new Texture2D(GraphicsDevice, 1, 1, false, SurfaceFormat.Color);

// Draws a "line" with size (1, 1), at position (20.12, 20.12), with blue color, rotated by 45° (Pi/4), with origin at (0, 0) (the line will begin at 'pos'), scaled by (150.23, 1) (gives the line a size of (150.23, 1) )
this.spriteBatch.Draw(simpleTexture, pos, null, myColor, MathHelper.PiOver4, Vector2.Zero, scale, SpriteEffects.None, 0)

我已经很久没有使用 XNA 了,所以我不能保证这会奏效。
无论如何,我希望它有所帮助。

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2013-02-17
    • 2014-10-06
    • 2014-03-24
    • 1970-01-01
    相关资源
    最近更新 更多