我正在学习c#,我不明白我怎样才能多点浮动因子。 例如,我有这样的点对象:如何通过浮点因子多点?
System.Windows.Point point = new System.Windows.Point(1, 1);
point = point * 2; // error
什么是由因素多点的最佳方式?
P.S.我应该为这些目的使用比例矩阵吗? (这似乎太贵了)
我正在学习c#,我不明白我怎样才能多点浮动因子。 例如,我有这样的点对象:如何通过浮点因子多点?
System.Windows.Point point = new System.Windows.Point(1, 1);
point = point * 2; // error
什么是由因素多点的最佳方式?
P.S.我应该为这些目的使用比例矩阵吗? (这似乎太贵了)
最简单的方法是做它是这样:
point = new System.Windows.Point(point.X * scale, point.Y * scale);
但是你在你的评论中提及“但它是不舒服的方式”,那么为什么不提出延期?
static class Extentions
{
public static System.Windows.Point Scale(this System.Windows.Point point, float scale)
{
return new System.Windows.Point(point.X * scale, point.Y * scale);
}
}
然后调用进一步扩展这样的:
point = point.Scale(2f);
只需插入Extentions
类到您的项目的代码,那么它应该工作。
编辑:
作为X上的一个后续...的评论。行:
return new System.Windows.Point(point.X * scale, point.Y * scale);
可以交换:
point.X *= scale;
point.T *= scale;
return point;
我希望这有助于。
您应该使用point.X和point.Y并将其倍数。 – 2016-07-29 11:14:06
但这是不舒服的方式。也许还有另一种解决方案? (除了使用比例矩阵) – LmTinyToon
您可以使用扩展方法。扩展它并编写自己的乘法方法 – 2016-07-29 11:17:40