本文整理汇总了C++中QBezier::length方法的典型用法代码示例。如果您正苦于以下问题:C++ QBezier::length方法的具体用法?C++ QBezier::length怎么用?C++ QBezier::length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QBezier
的用法示例。
在下文中一共展示了QBezier::length方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tAtLength
qreal QBezier::tAtLength(qreal l) const
{
qreal len = length();
qreal t = qreal(1.0);
const qreal error = qreal(0.01);
if (l > len || qFuzzyCompare(l, len))
return t;
t *= qreal(0.5);
//int iters = 0;
//qDebug()<<"LEN is "<<l<<len;
qreal lastBigger = qreal(1.0);
while (1) {
//qDebug()<<"\tt is "<<t;
QBezier right = *this;
QBezier left;
right.parameterSplitLeft(t, &left);
qreal lLen = left.length();
if (qAbs(lLen - l) < error)
break;
if (lLen < l) {
t += (lastBigger - t) * qreal(0.5);
} else {
lastBigger = t;
t -= t * qreal(0.5);
}
//++iters;
}
//qDebug()<<"number of iters is "<<iters;
return t;
}