本文整理汇总了C++中line::mid方法的典型用法代码示例。如果您正苦于以下问题:C++ line::mid方法的具体用法?C++ line::mid怎么用?C++ line::mid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类line
的用法示例。
在下文中一共展示了line::mid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: line_line
const collision line_line(const line &a, const line &b)
{
collision r;
auto m1 = (a.position.y - a.end.y) / (a.position.x - a.end.x);
auto m2 = (b.position.y - b.end.y) / (b.position.x - b.end.x);
auto b1 = a.position.y - m1*a.position.x;
auto b2 = b.position.y - m2*b.position.x;
float x = (b2 - b1) / (m1 - m2);
float y = m1*x + b1;
if ((a.position.x - a.end.x) == 0) // if a is a vertical line, then there is only 1 possible x value.
{ x = a.position.x; y = m2 *x + b2; }
if ((b.position.x - b.end.x) == 0)
{ x = b.position.x; y = m1 *x + b1; }
r.contact = { x, y }; point p(r.contact);
r.result = circle_point(circle(a.mid(), a.length() / 2), p).result
&& circle_point(circle(b.mid(), b.length() / 2), p).result;
if (m1 == m2)
{
r.result = false;
return r;
}
return r;
}