本文整理汇总了C++中Transformer::scale方法的典型用法代码示例。如果您正苦于以下问题:C++ Transformer::scale方法的具体用法?C++ Transformer::scale怎么用?C++ Transformer::scale使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Transformer
的用法示例。
在下文中一共展示了Transformer::scale方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: transform
void View::transform(
Transformer& t, const Allocation& a, const Allocation&
) const {
scene2view(a);
const Allotment& ax = a.x_allotment();
const Allotment& ay = a.y_allotment();
csize(ax.begin(), ax.span(), ay.begin(), ay.span());
float sx = ax.span()/XYView::width();
float sy = ay.span()/XYView::height();
// if (sx > sy) sx = sy;
t.translate( -x(), -y());
t.scale(sx, sx);
View* v = (View*)this;
v->x_pick_epsilon_ = pick_epsilon/sx;
v->y_pick_epsilon_ = pick_epsilon/sx;
t.translate((ax.begin() + ax.end())/2,(ay.begin() + ay.end())/2);
//printf("\nx origin=%g span=%g alignment=%g begin=%g end=%g\n", ax.origin(), ax.span(), ax.alignment(), ax.begin(), ax.end());
//printf("\ny origin=%g span=%g alignment=%g begin=%g end=%g\n", ay.origin(), ay.span(), ay.alignment(), ay.begin(), ay.end());
Coord x1,y1;
t.transform(x() - x_span_/2, y() - y_span_/2, x1, y1);
if (!Math::equal(ax.begin(), x1, 1) || !Math::equal(ay.begin(), y1, 1)) {
t.inverse_transform(ax.begin(), ay.begin(), x1, y1);
v->x_span_ = 2*(x() - x1);
v->y_span_ = 2*(y() - y1);
v->size(x1,y1,x1+v->x_span_, y1+v->y_span_);
}
}
示例2: transform
void TransformFitter::transform(
Transformer& t, const Allocation& a, const Allocation& natural
) const {
const Allotment& natural_x = natural.x_allotment();
const Allotment& natural_y = natural.y_allotment();
if (!Math::equal(natural_x.span(), Coord(0), float(1e-2)) &&
!Math::equal(natural_y.span(), Coord(0), float(1e-2))
) {
const Allotment& ax = a.x_allotment();
const Allotment& ay = a.y_allotment();
t.scale(
a.x_allotment().span() / natural_x.span(),
a.y_allotment().span() / natural_y.span()
);
}
t.translate(a.x(), a.y());
}
示例3: read_idraw_graphic
Glyph* read_idraw_graphic (
FILE* file, const Brush* pb, const Color* pfg, const Color* pbg,
const Font* pf, Stipple* ps
) {
skip(file);
Transformer tx;
Glyph* glyph = nil;
const LayoutKit& layout = *LayoutKit::instance();
if (fscanf(file, "%s", buffer) != EOF) {
figure& fig = figures[which(figures, buffer)];
if (strcmp(fig.name, "Idraw") == 0) {
fscanf(file, "%d", &drawing_version);
figures = versions[drawing_version];
}
const Brush* b = (fig.brush) ? read_brush(file) : nil;
const Color* fg = (fig.foreground) ? read_color(file) : nil;
const Color* bg = (fig.background) ? read_color(file) : nil;
const Font* f = (fig.font) ? read_font(file) : nil;
Stipple* s = (fig.pattern) ? read_stipple(file) : nil;
if (fig.transformer) {
read_transformer(file, tx);
}
if (pb) b = pb;
if (pfg) fg = pfg;
if (pbg) bg = pbg;
if (pf) f = pf;
if (ps) s = ps;
if (fig.name == nil) {
; // error
} else if (
strcmp(fig.name, "Idraw") == 0 || strcmp(fig.name, "Pict") == 0
) {
Glyph* pic = layout.overlay();
Glyph* g;
do {
g = read_idraw_graphic(file, b, fg, bg, f, s);
if (g != nil) {
pic->append(g);
}
} while (g != nil);
glyph = pic;
} else if (strcmp(fig.name, "eop") == 0) {
glyph = nil;
} else if (strcmp(fig.name, "Text") == 0) {
skip(file);
fscanf(file, "%s", buffer);
getc(file);
PolyGlyph* col = layout.vbox_first_aligned();
PolyGlyph* line = layout.hbox_first_aligned();
FontBoundingBox bbox;
f->font_bbox(bbox);
Coord lineheight = bbox.font_ascent() + bbox.font_descent();
if (_idraw_font_metrics) {
lineheight /= fixtextscale;
}
int c;
while ((c = getc(file)) != ']') {
if (c == '\n') {
line->append(layout.strut(f));
col->append(
layout.v_fixed_span(line, lineheight)
);
line = layout.hbox();
} else if (c == ' ') {
if (_idraw_font_metrics) {
line->append(
layout.shape_of(new Character(' ', f, fg))
);
} else {
line->append(new Character(' ', f, fg));
}
} else if (c != ')' && c != '(') {
if (c == '\\') {
c = getc(file);
if (isdigit(c)) {
c -= '0';
c = (c * 8) + getc(file) - '0';
c = (c * 8) + getc(file) - '0';
}
}
line->append(new Character(c, f, fg));
}
}
Transformer fixtext;
if (_idraw_font_metrics) {
fixtext.scale(fixtextscale, fixtextscale);
}
fixtext.translate(0, bbox.font_descent() - lineheight);
glyph = new TransformSetter(col, fixtext);
} else {
skip(file);
int c = fig.coords;
if (c == -1) {
fscanf(file, "%d", &c);
}
Coord xx, yy;
Coord* x = new Coord[c];
//.........这里部分代码省略.........