corrected error on intersection line-circle
This commit is contained in:
parent
43958eea39
commit
de99d5c2d9
|
@ -24,6 +24,9 @@
|
||||||
History
|
History
|
||||||
|
|
||||||
$Log: not supported by cvs2svn $
|
$Log: not supported by cvs2svn $
|
||||||
|
Revision 1.6 2007/05/08 12:11:58 pietroni
|
||||||
|
added circle-line intersection
|
||||||
|
|
||||||
|
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
@ -214,17 +217,19 @@ template<class SCALAR_TYPE>
|
||||||
//intersection between a circle and a line
|
//intersection between a circle and a line
|
||||||
template<class SCALAR_TYPE>
|
template<class SCALAR_TYPE>
|
||||||
inline bool CircleLineIntersection(const vcg::Line2<SCALAR_TYPE> & line,
|
inline bool CircleLineIntersection(const vcg::Line2<SCALAR_TYPE> & line,
|
||||||
const vcg::Point2<ScalarType> ¢er,
|
const vcg::Point2<SCALAR_TYPE> ¢er,
|
||||||
const ScalarType &radius,
|
const SCALAR_TYPE &radius,
|
||||||
vcg::Point2<ScalarType> &p0,
|
vcg::Point2<SCALAR_TYPE> &p0,
|
||||||
vcg::Point2<ScalarType> &p1)
|
vcg::Point2<SCALAR_TYPE> &p1)
|
||||||
{
|
{
|
||||||
|
typedef typename SCALAR_TYPE ScalarType;
|
||||||
|
|
||||||
///translate with origin on the center
|
///translate with origin on the center
|
||||||
ScalarType x1,x2,y1,y2;
|
ScalarType x1,x2,y1,y2;
|
||||||
x1=p.X()-center.X();
|
x1=line.Origin().X()-center.X();
|
||||||
y1=p.Y()-center.Y();
|
y1=line.Origin().Y()-center.Y();
|
||||||
x2=x1+line.Direction.X();
|
x2=x1+line.Direction().X();
|
||||||
y2=y1+line.Direction.Y();
|
y2=y1+line.Direction().Y();
|
||||||
|
|
||||||
ScalarType dx,dy,dr,D,delta,sign;
|
ScalarType dx,dy,dr,D,delta,sign;
|
||||||
dx=x2-x1;
|
dx=x2-x1;
|
||||||
|
|
Loading…
Reference in New Issue