本文整理汇总了C#中Circle.GetCenter方法的典型用法代码示例。如果您正苦于以下问题:C# Circle.GetCenter方法的具体用法?C# Circle.GetCenter怎么用?C# Circle.GetCenter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Circle
的用法示例。
在下文中一共展示了Circle.GetCenter方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Equals
public static bool Equals(Circle thiz, Object o)
{
if (thiz == null)
throw new ArgumentNullException("thiz");
if (thiz == o) return true;
var circle = o as Circle;
if (circle == null) return false;
if (!thiz.GetCenter().Equals(circle.GetCenter())) return false;
if (!circle.GetRadius().Equals(thiz.GetRadius())) return false;
return true;
}
示例2: Relate
public SpatialRelation Relate(Circle circle, SpatialContext ctx)
{
SpatialRelation bboxR = bbox.Relate(circle);
if (bboxR == SpatialRelation.WITHIN || bboxR == SpatialRelation.DISJOINT)
return bboxR;
//Test each point to see how many of them are outside of the circle.
//TODO consider instead using geom.apply(CoordinateSequenceFilter) -- maybe faster since avoids Coordinate[] allocation
Coordinate[] coords = geom.Coordinates;
int outside = 0;
int i = 0;
foreach (Coordinate coord in coords)
{
i++;
SpatialRelation sect = circle.Relate(new PointImpl(coord.X, coord.Y, ctx));
if (sect == SpatialRelation.DISJOINT)
outside++;
if (i != outside && outside != 0)//short circuit: partially outside, partially inside
return SpatialRelation.INTERSECTS;
}
if (i == outside)
{
return (Relate(circle.GetCenter()) == SpatialRelation.DISJOINT)
? SpatialRelation.DISJOINT : SpatialRelation.CONTAINS;
}
Debug.Assert(outside == 0);
return SpatialRelation.WITHIN;
}
示例3: GetHashCode
/// <summary>
/// All {@link Circle} implementations should use this definition of {@link Object#hashCode()}.
/// </summary>
/// <param name="thiz"></param>
/// <returns></returns>
public static int GetHashCode(Circle thiz)
{
if (thiz == null)
throw new ArgumentNullException("thiz");
int result = thiz.GetCenter().GetHashCode();
long temp = Math.Abs(thiz.GetRadius() - +0.0d) > Double.Epsilon
? BitConverter.DoubleToInt64Bits(thiz.GetRadius())
: 0L;
result = 31*result + (int) (temp ^ ((uint) temp >> 32));
return result;
}
示例4: Relate
public SpatialRelation Relate(Circle circle, SpatialContext ctx)
{
double crossDist = ctx.GetDistCalc().Distance(point, circle.GetCenter());
double aDist = distRadius, bDist = circle.GetRadius();
if (crossDist > aDist + bDist)
return SpatialRelation.DISJOINT;
if (crossDist < aDist && crossDist + bDist <= aDist)
return SpatialRelation.CONTAINS;
if (crossDist < bDist && crossDist + aDist <= bDist)
return SpatialRelation.WITHIN;
return SpatialRelation.INTERSECTS;
}
示例5: RandomPointWithin
private Point RandomPointWithin(Circle c)
{
double d = c.GetRadius() * random.NextDouble();
double angleDEG = 360 * random.NextDouble();
Point p = ctx.GetDistCalc().PointOnBearing(c.GetCenter(), d, angleDEG, ctx);
Assert.Equal(SpatialRelation.CONTAINS, c.Relate(p, ctx));
return p;
}