本文整理汇总了C++中ofPath::close方法的典型用法代码示例。如果您正苦于以下问题:C++ ofPath::close方法的具体用法?C++ ofPath::close怎么用?C++ ofPath::close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ofPath
的用法示例。
在下文中一共展示了ofPath::close方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mousePointerStraight
void pathFactory::mousePointerStraight(ofPath &p, float x_dim, float y_dim, float t_size){
vector<ofPoint> tpoints;
float tw = 0.3;
float sw = 0.074;
float cl = 1;
float al = 0.74;
float bl = 0.55;
tpoints.push_back(ofPoint(0,0));
tpoints.push_back(ofPoint(-tw,al));//a1
tpoints.push_back(ofPoint(-sw,bl)); // b1
tpoints.push_back(ofPoint(-sw,cl)); //c1
tpoints.push_back(ofPoint(sw,cl));//c2
tpoints.push_back(ofPoint(sw,bl)); // b2
tpoints.push_back(ofPoint(tw,al)); //a2
tpoints.push_back(ofPoint(0,0));
for(int i = 0; i < tpoints.size(); i++){
tpoints[i] *= ofVec2f(x_dim, y_dim);
tpoints[i] *= t_size;
p.lineTo(tpoints[i]);
}
p.close();
}
示例2: rectangle
// Temporary fix until OF 0.8.0
static void rectangle(ofPath & path, const ofRectangle & r){
path.moveTo(r.getTopLeft());
path.lineTo(r.getTopRight());
path.lineTo(r.getBottomRight());
path.lineTo(r.getBottomLeft());
path.close();
}
示例3: push
void ShapeContentEllipse::push(ofPath& path)
{
vector<ofPath::Command>& command = path.getCommands();
int command_count_prev = command.size();
path.ellipse(pos_.x, pos_.y, size_.x, size_.y);
path.close();
command_count_ = command.size() - command_count_prev;
}
示例4: setupShape
void ofxSVG::setupShape(struct svgtiny_shape * shape, ofPath & path){
float * p = shape->path;
path.setFilled(false);
if(shape->fill != svgtiny_TRANSPARENT){
path.setFilled(true);
path.setFillHexColor(shape->fill);
ofColor color = path.getFillColor();
color.a = shape->opacity*255;
path.setColor(color);
path.setPolyWindingMode(OF_POLY_WINDING_ODD);
}
if(shape->stroke != svgtiny_TRANSPARENT){
path.setStrokeWidth(shape->stroke_width);
path.setStrokeHexColor(shape->stroke);
}
for(int i = 0; i < (int)shape->path_length;){
if(p[i] == svgtiny_PATH_MOVE){
path.moveTo(p[i + 1], p[i + 2]);
i += 3;
}
else if(p[i] == svgtiny_PATH_CLOSE){
path.close();
i += 1;
}
else if(p[i] == svgtiny_PATH_LINE){
path.lineTo(p[i + 1], p[i + 2]);
i += 3;
}
else if(p[i] == svgtiny_PATH_BEZIER){
path.bezierTo(p[i + 1], p[i + 2],
p[i + 3], p[i + 4],
p[i + 5], p[i + 6]);
i += 7;
}
else{
ofLogError("ofxSVG") << "setupShape(): SVG parse error";
i += 1;
}
}
ofRectangle pathBoundingBox = getBoundingBoxOfPath(path);
if(pathBoundingBox.getArea() != 0.0){
if(boundingBox.getArea() == 0.0){
boundingBox = pathBoundingBox;
}
else{
boundingBox.growToInclude(pathBoundingBox);
}
}
}
示例5: setup
void setup(){
ofBackground(0);
path.moveTo(0,0);
path.lineTo(120, 150);
path.lineTo(180, 100);
path.lineTo(300, 300);
path.lineTo(300, 400);
path.close();
path.setFilled(false);
path.setStrokeWidth(1);
path2.moveTo(100,50);
path2.lineTo(200, 250);
path2.lineTo(150, 500);
path2.close();
path2.setFilled(false);
path2.setStrokeWidth(1);
unioned = ofxGPC::getPolygonClip(ofxGPC::UNION, path, path2);
diffed = ofxGPC::getPolygonClip(ofxGPC::DIFF, path, path2);
}
示例6: setupShape
void Svg::setupShape(struct svgtiny_shape * shape, ofPath & path){
float* p = shape->path;
path.setFilled(false);
if(shape->fill != svgtiny_TRANSPARENT){
path.setFilled(true);
path.setFillHexColor(shape->fill);
path.setPolyWindingMode(OF_POLY_WINDING_NONZERO);
}
if(shape->stroke != svgtiny_TRANSPARENT){
path.setStrokeWidth(shape->stroke_width);
path.setStrokeHexColor(shape->stroke);
}
for(int i = 0; i < (int)shape->path_length;){
if(p[i] == svgtiny_PATH_MOVE){
path.moveTo(p[i + 1], p[i + 2]);
i += 3;
}
else if(p[i] == svgtiny_PATH_CLOSE){
path.close();
i += 1;
}
else if(p[i] == svgtiny_PATH_LINE){
path.lineTo(p[i + 1], p[i + 2]);
i += 3;
}
else if(p[i] == svgtiny_PATH_BEZIER){
path.bezierTo(p[i + 1], p[i + 2],
p[i + 3], p[i + 4],
p[i + 5], p[i + 6]);
i += 7;
}
else{
ofLogError("Svg") << "setupShape(): SVG parse error";
i += 1;
}
}
}