本文整理汇总了C#中IFigure.ContainsPoint方法的典型用法代码示例。如果您正苦于以下问题:C# IFigure.ContainsPoint方法的具体用法?C# IFigure.ContainsPoint怎么用?C# IFigure.ContainsPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IFigure
的用法示例。
在下文中一共展示了IFigure.ContainsPoint方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Chop
protected virtual PointD Chop (IFigure target, PointD point) {
if (target == null) {
return new PointD (0, 0);
}
else if (target.ContainsPoint (point.X, point.Y)) {
return target.DisplayBox.Center;
}
double angle = Geometry.AngleFromPoint (DisplayBox, point);
return Geometry.EdgePointFromAngle (DisplayBox, angle);
}
示例2: Chop
protected override PointD Chop (IFigure target, PointD point) {
if (target.ContainsPoint (point.X, point.Y)) {
return target.DisplayBox.Center;
}
double angle = Geometry.AngleFromPoint (DisplayBox, point);
PointD p = new PointD (0.0, 0.0);
RectangleD r = target.DisplayBox;
p.X = r.Center.X + r.Width/2 * Math.Cos (angle);
p.Y = r.Center.Y + r.Height/2 * Math.Sin (angle);
return p;
}
示例3: Chop
protected override PointD Chop(IFigure target, PointD point)
{
if (target.ContainsPoint (point.X, point.Y)) {
return target.DisplayBox.Center;
}
double angle = Geometry.AngleFromPoint (DisplayBox, point);
double sin = Math.Sin (angle);
double cos = Math.Cos (angle);
double x = 0;
double e = 0.0001;
double y = 0;
RectangleD r = DisplayBox;
if (Math.Abs (sin) > e) {
x = (1.0 + cos / Math.Abs (sin)) / 2.0 * r.Width;
x = Geometry.Range (0.0, r.Width, x);
} else if (cos >= 0.0) {
x = r.Width;
}
if (Math.Abs (cos) > e) {
y = (1.0 + sin / Math.Abs (cos)) / 2.0 * r.Height;
y = Geometry.Range (0.0, r.Height, y);
} else if (sin >= 0.0) {
y = r.Height;
}
x += r.X;// - (x + r.X > r.X + r.Width/2 ? (r.Width/2) * -1 : (r.Width/2));
if (x > r.X + r.Width / 2) {
//x = r.X + r.Width / 2;
Console.WriteLine ("Decrementar la mitad ancho");
} else {
// x -= r.Width / 2;
Console.WriteLine ("Aumentar la mitad ancho");
}
y += r.Y;// - (y > (r.Y + r.Height) / 2 ? (r.Y + r.Height) / 2 : 0);
if (y > r.Y + r.Height / 2) {
Console.WriteLine ("Aumentar la mitad altura");
// y += r.Height / 2;
} else {
//y = r.Y + r.Height / 2;
Console.WriteLine ("Decrementar la mitad altura");
// y -= r.Height / 2;
}
return new PointD (x, y);
}