本文整理汇总了C++中ofVec2f::squareDistance方法的典型用法代码示例。如果您正苦于以下问题:C++ ofVec2f::squareDistance方法的具体用法?C++ ofVec2f::squareDistance怎么用?C++ ofVec2f::squareDistance使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ofVec2f
的用法示例。
在下文中一共展示了ofVec2f::squareDistance方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: interaccion_point
void menu::interaccion_point(ofVec2f ptF, bool isNeg) {
float minDis = ofGetHeight()/3.0;// (isNeg)? 400 : 200;
float minDis2 = minDis*minDis;
float ff = 1.0;
float fFuerza = 45.0;
if(ptF.distance(centro)<distConf) {
// if(ptF.squareDistance(centro)<distConf) {
if(isNeg) {
// Atrae circulos y repele boxes
for(int i=0; i<circles.size(); i++) {
// float dis = ptF.distance(circles[i].get()->getPosition());
float dis2 = ptF.squareDistance(circles[i].get()->getPosition());
// if(dis < minDis)
// if(dis2 < minDis2)
// circles[i].get()->addRepulsionForce(ptF, ff*1.4f*fFuerza/dis2);//3, 9);
// else
// circles[i].get()->addAttractionPoint(ptF, ff*2.2*fFuerza/dis2);//4.0);
circles[i].get()->addAttractionPoint(ptF, ff*2.2*fFuerza/dis2);//4.0);
}
for(int i=0; i<boxes.size(); i++) {
float dis = ptF.distance(boxes[i].get()->getPosition());
float dis2 = dis*dis;//ptF.squareDistance(boxes[i].get()->getPosition());
// if(dis < minDis)
// if(dis2 < minDis2)
// boxes[i].get()->addAttractionPoint(ptF, ff*1.2*fFuerza/dis2);
// else
// boxes[i].get()->addRepulsionForce(ptF, ff*0.8*fFuerza/dis2);//4.0);
boxes[i].get()->addRepulsionForce(ptF, ff*0.9*fFuerza/dis2);//4.0);
}
}
else {
// Mouse Pressed
// Atrae boxes y repele circulos
for(int i=0; i<circles.size(); i++) {
// float dis = ptF.distance(circles[i].get()->getPosition());
float dis2 = ptF.squareDistance(circles[i].get()->getPosition());
// if(dis < minDis)
// if(dis2 < minDis2)
// circles[i].get()->addAttractionPoint(ptF, ff*1.2*fFuerza/dis2);//3, 9);
// else
circles[i].get()->addRepulsionForce(ptF, ff*0.8*fFuerza/dis2);//4.0);
}
for(int i=0; i<boxes.size(); i++) {
float dis = ptF.distance(boxes[i].get()->getPosition());
float dis2 = ptF.squareDistance(boxes[i].get()->getPosition());
// if(dis < minDis)
if(dis2 < minDis2)
// boxes[i].get()->addRepulsionForce(ptF, ff*1.4*fFuerza/dis);
// else
boxes[i].get()->addAttractionPoint(ptF, ff*2.2*fFuerza/dis2);//4.0);
}
}
}
}