【问题标题】:Drawing image with an angle绘制带角度的图像
【发布时间】:2015-01-19 09:16:53
【问题描述】:

编辑:下面的图片不应该有空格。我只是想向您展示我正在尝试从 1x64 图像创建一个矩形,其位置如第二张图片所示

我知道如何在 XNA 中旋转这样的图像

但是怎么可能以这种方式绘制这个角度的精灵呢?

我似乎无法找到答案,我正在整理想法

【问题讨论】:

  • 所以您希望拥有等距的矩形外观?嗯...您必须将图像中的每一列向上移动。第一列 0px,第二列 1px,第三列 2px……没有现有的功能,你必须自己写。
  • @DavorMlinaric 这意味着如果我想制作一个 200 宽的矩形,我必须计算 200 列然后分别绘制它们,必须有某种投影函数来做到这一点跨度>

标签: c# xna 2d xna-4.0


【解决方案1】:

我找到了这个使用矩阵的例子,但我没有测试它。

Matrix matrix = Matrix.CreateRotationX(MathHelper.ToRadians(60)) * 
                Matrix.CreateRotationY(MathHelper.ToRadians(30)) * 
                Matrix.CreateScale(1,1,0);

spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, matrix);

【讨论】:

  • 我会检查它并告诉你进展如何,谢谢你的回答,如果你有你得到这个例子的网站的链接,如果你能,它可能对我有用链接它
  • 它根本不会改变屏幕上的任何东西,很奇怪
  • 尝试使用周围的矩阵寻找倾斜。我真的不能帮助你,因为我从来没有尝试过这样的事情。如果您找到了解决方案,请在此处发布,以便其他人也可以找到它。
【解决方案2】:
Matrix CreateSkewY(float angle)
{
    Matrix skew = Matrix.Identity;
    skew.M21 = (float)Math.Tan((double)angle);
    return skew;
}

spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null,
CreateSkewX((float)Math.PI / 6));

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2019-02-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多