本文整理汇总了C++中vector2::dot方法的典型用法代码示例。如果您正苦于以下问题:C++ vector2::dot方法的具体用法?C++ vector2::dot怎么用?C++ vector2::dot使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vector2
的用法示例。
在下文中一共展示了vector2::dot方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: hitCircle
double hitCircle(vector2 here, vector2 dir, vector2 center, double radius) {
double a = dir.dot(dir);
double b = 2 * dir.dot(here - center);
double c = center.dot(center) + here.dot(here) - 2 * here.dot(center) - radius * radius;
vector<double> sols = equation(a, b, c);
if (sols.empty() || sols[0] < EPSILON) return INF;
return sols[0];
}
示例2: crush
double crush(vector2 s, vector2 p, vector2 center, int r)
{
// 이차 방정식 ax^2+bx+c=0 형태를 만든다
double a = p.dot(p);
double b = 2*(s-center).dot(p);
double c = center.dot(center)+s.dot(s)-r*r-2*center.dot(s);
double d = b*b - 4*a*c;
// 전혀 안부딪힘
if(d < 0) {
return INFITY;
}
// 시간t의 근은 무조건 양수 2개가 나와야 된다(또는 양수 중근)
// 그 중 작은 값만 취하기 때문에 큰 값은 버린다
double solv = (-b - sqrt(d)) / 2*a;
// 음수가 하나라도 나오면 공은 장애물에 부딪히지 않는다
if(solv < 0) {
return INFITY;
} else {
return solv;
}
}