本文整理汇总了C++中Coordinates::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ Coordinates::clear方法的具体用法?C++ Coordinates::clear怎么用?C++ Coordinates::clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Coordinates
的用法示例。
在下文中一共展示了Coordinates::clear方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: clipBottom
void Clipping::clipBottom(Coordinates& input, Coordinates& output){
if(output.size() > 0)
output.clear();
if(input.size() == 0)
return;
double clipY = m_w->minY;
input.push_back(input[0]);
for(unsigned int i = 0; i < input.size()-1; i++){
Coordinate c0 = input[i];
Coordinate c1 = input[i+1];
//Caso 1: out -> out
if(c0.y < clipY && c1.y < clipY){}
//Caso 2: in -> in
if(c0.y >= clipY && c1.y >= clipY)
output.push_back(c1);
double y = clipY;
double m = (c1.x-c0.x)/(c1.y-c0.y);
double x = m * (y-c0.y) + c0.x;
//Caso 3: in -> out
if(c0.y >= clipY && c1.y < clipY)
output.emplace_back(x,y);
//Caso 4: out -> in
if(c0.y < clipY && c1.y >= clipY){
output.emplace_back(x,y);
output.push_back(c1);
}
}
}
示例2: clipRight
void Clipping::clipRight(Coordinates& input, Coordinates& output){
if(output.size() > 0)
output.clear();
if(input.size() == 0)
return;
double clipX = m_w->maxX;
input.push_back(input[0]);
for(unsigned int i = 0; i < input.size()-1; i++){
Coordinate c0 = input[i];
Coordinate c1 = input[i+1];
//Caso 1: out -> out
if(c0.x >= clipX && c1.x >= clipX){}
//Caso 2: in -> in
if(c0.x < clipX && c1.x < clipX)
output.push_back(c1);
double x = clipX;
double m = (c1.y-c0.y)/(c1.x-c0.x);
double y = m * (x-c0.x) + c0.y;
//Caso 3: in -> out
if(c0.x < clipX && c1.x >= clipX)
output.emplace_back(x,y);
//Caso 4: out -> in
if(c0.x >= clipX && c1.x < clipX){
output.emplace_back(x,y);
output.push_back(c1);
}
}
}
示例3: QCOMPARE
void Coordinates_test::
t_readwrite()
{
Coordinates c;
c.clear();
QCOMPARE(c.count(), 0);
c << 1.0 << 3.0;
c.clear();
QCOMPARE(c.count(), 0);
c << 1.0 << 3.0;
c.erase(c.begin(), c.end());
QCOMPARE(c.count(), 0);
c << 1.0 << 0.0;
Coordinates::iterator i= c.erase(c.begin());
QCOMPARE(*i, 0.0);
i= c.insert(c.end(), 1.0);
QCOMPARE(*i, 1.0);
QCOMPARE(c.count(), 2);
c.pop_back();
QCOMPARE(c.count(), 1); // 0
QCOMPARE(c[0], 0.0);
c.push_back(2.0);
QCOMPARE(c.count(), 2);
c.append(3.0);
QCOMPARE(c.count(), 3); // 0, 2, 3
QCOMPARE(c[2], 3.0);
c.insert(0, 4.0);
QCOMPARE(c[0], 4.0);
QCOMPARE(c[3], 3.0);
c.insert(c.count(), 5.0);
QCOMPARE(c.count(), 5); // 4, 0, 2, 3, 5
QCOMPARE(c[4], 5.0);
c.move(4, 0);
QCOMPARE(c.count(), 5); // 5, 4, 0, 2, 3
QCOMPARE(c[0], 5.0);
c.pop_front();
QCOMPARE(c.count(), 4);
QCOMPARE(c[0], 4.0);
c.prepend(6.0);
QCOMPARE(c.count(), 5); // 6, 4, 0, 2, 3
QCOMPARE(c[0], 6.0);
c.push_front(7.0);
QCOMPARE(c.count(), 6);
QCOMPARE(c[0], 7.0);
c.removeAt(1);
QCOMPARE(c.count(), 5); // 7, 4, 0, 2, 3
QCOMPARE(c[1], 4.0);
c.removeFirst();
QCOMPARE(c.count(), 4); // 4, 0, 2, 3
QCOMPARE(c[0], 4.0);
c.removeLast();
QCOMPARE(c.count(), 3);
QCOMPARE(c.last(), 2.0);
c.replace(2, 8.0);
QCOMPARE(c.count(), 3); // 4, 0, 8
QCOMPARE(c[2], 8.0);
c.swap(0, 2);
QCOMPARE(c[2], 4.0);
double d= c.takeAt(2);
QCOMPARE(c.count(), 2); // 8, 0
QCOMPARE(d, 4.0);
double d2= c.takeFirst();
QCOMPARE(c.count(), 1); // 0
QCOMPARE(d2, 8.0);
double d3= c.takeLast();
QVERIFY(c.isEmpty()); \
QCOMPARE(d3, 0.0);
}//t_readwrite