本文整理汇总了C++中point::len方法的典型用法代码示例。如果您正苦于以下问题:C++ point::len方法的具体用法?C++ point::len怎么用?C++ point::len使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类point
的用法示例。
在下文中一共展示了point::len方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: cmp
bool cmp(point left, point right) {
point a = left - points[0], b = right - left;
if(a.x * b.y > b.x * a.y) return 1;
if(a.x * b.y == b.x * a.y)
return left.len() < right.len();
return 0;
}
示例2:
circle( point a,point b,point c ) {
double A,B,C,D,E,F;
A=2*a.x-2*b.x;
B=2*a.y-2*b.y;
C=SQ( a.len() )-SQ( b.len() );
D=2*a.x-2*c.x;
E=2*a.y-2*c.y;
F=SQ( a.len() )-SQ( c.len() );
ct.x=( C*E-B*F )/( A*E-B*D );
ct.y=( A*F-C*D )/( A*E-B*D );
r=( a-ct ).len();
}
示例3: areaCT
double areaCT(const circle &cir, point pa, point pb) {
pa = pa - cir.o; pb = pb - cir.o;
double R = cir.r;
if (pa.len() < pb.len()) swap(pa, pb);
if (pb.len() < EPS) return 0;
point pc = pb - pa;
double a = pa.len(), b = pb.len(), c = pc.len();
double cosB = dot(pb, pc) / b / c, B = acos(cosB);
double cosC = dot(pa, pb) / a / b, C = acos(cosC);
double S, h, theta;
if (b > R) {
S = C * 0.5 * R * R;
h = b * a * sin(C) / c;
if (h < R && B < PI * 0.5) S -= acos(h / R) * R * R - h * sqrt(R * R - h * h);
} else if (a > R) {
theta = PI - B - asin(sin(B) / R * b);
S = 0.5 * b * R * sin(theta) + (C - theta) * 0.5 * R * R;
} else S = 0.5 * sin(C) * b * a;
return S;
}
示例4: get_dis
double get_dis(point v,point p)
{
if(fabs(v.x*p.y - p.x*v.y) < eps) return 0;
double si = (v.x*p.y-p.x*v.y)/dis(point(0,0),v)/p.len();
return p.len() * fabs(si);
}