本文整理汇总了C#中CPos.ToFloat2方法的典型用法代码示例。如果您正苦于以下问题:C# CPos.ToFloat2方法的具体用法?C# CPos.ToFloat2怎么用?C# CPos.ToFloat2使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CPos
的用法示例。
在下文中一共展示了CPos.ToFloat2方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MinimapPixelToCell
CPos MinimapPixelToCell(int2 p)
{
var viewOrigin = new float2(mapRect.X, mapRect.Y);
var mapOrigin = new CPos(world.Map.Bounds.Left, world.Map.Bounds.Top);
return (CPos)(mapOrigin.ToFloat2() + (1f / previewScale) * (p - viewOrigin)).ToInt2();
}
示例2: GetMinefieldCells
static IEnumerable<CPos> GetMinefieldCells(CPos start, CPos end, float depth)
{
var mins = CPos.Min(start, end);
var maxs = CPos.Max(start, end);
/* todo: proper endcaps, if anyone cares (which won't happen unless depth is large) */
var p = end - start;
var q = new float2(p.Y, -p.X);
q = (start != end) ? (1 / q.Length) * q : new float2(1, 0);
var c = -float2.Dot(q, start.ToFloat2());
/* return all points such that |ax + by + c| < depth */
for (var i = mins.X; i <= maxs.X; i++)
for (var j = mins.Y; j <= maxs.Y; j++)
if (Math.Abs(q.X * i + q.Y * j + c) < depth)
yield return new CPos(i, j);
}