本文整理汇总了C++中cairo_matrix_translate函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_matrix_translate函数的具体用法?C++ cairo_matrix_translate怎么用?C++ cairo_matrix_translate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_matrix_translate函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cairo_save
void cairo_container::draw_txdib( cairo_t* cr, CTxDIB* bmp, int x, int y, int cx, int cy )
{
cairo_save(cr);
cairo_matrix_t flib_m;
cairo_matrix_init(&flib_m, 1, 0, 0, -1, 0, 0);
cairo_surface_t* img = NULL;
CTxDIB rbmp;
if(cx != bmp->getWidth() || cy != bmp->getHeight())
{
bmp->resample(cx, cy, &rbmp);
img = cairo_image_surface_create_for_data((unsigned char*) rbmp.getBits(), CAIRO_FORMAT_ARGB32, rbmp.getWidth(), rbmp.getHeight(), rbmp.getWidth() * 4);
cairo_matrix_translate(&flib_m, 0, -rbmp.getHeight());
cairo_matrix_translate(&flib_m, x, -y);
} else
{
img = cairo_image_surface_create_for_data((unsigned char*) bmp->getBits(), CAIRO_FORMAT_ARGB32, bmp->getWidth(), bmp->getHeight(), bmp->getWidth() * 4);
cairo_matrix_translate(&flib_m, 0, -bmp->getHeight());
cairo_matrix_translate(&flib_m, x, -y);
}
cairo_transform(cr, &flib_m);
cairo_set_source_surface(cr, img, 0, 0);
cairo_paint(cr);
cairo_restore(cr);
cairo_surface_destroy(img);
}
开发者ID:bigfatbrowncat,项目名称:litehtml,代码行数:31,代码来源:cairo_container.cpp
示例2: fabs
void wxGISDisplay::InitTransformMatrix(void)
{
m_dFrameCenterX = m_oDeviceFrameRect.GetWidth() / 2;
m_dFrameCenterY = m_oDeviceFrameRect.GetHeight() / 2;
double dWorldCenterX = (m_CurrentBounds.MaxX - m_CurrentBounds.MinX) / 2;
double dWorldCenterY = (m_CurrentBounds.MaxY - m_CurrentBounds.MinY) / 2;
//origin (UL corner)
m_dOrigin_X = m_dCacheCenterX - m_dFrameCenterX;
m_dOrigin_Y = m_dCacheCenterY - m_dFrameCenterY;
//get scale
double dScaleX = fabs(m_dFrameCenterX / dWorldCenterX);
double dScaleY = fabs(m_dFrameCenterY / dWorldCenterY);
m_dScale = wxMin(dScaleX, dScaleY);
double dWorldDeltaX = dWorldCenterX + m_CurrentBounds.MinX;
double dWorldDeltaY = dWorldCenterY + m_CurrentBounds.MinY;
double dWorldDeltaXSt = m_dScale * dWorldDeltaX;// + m_dAngleRad * dWorldDeltaY;
double dWorldDeltaYSt = m_dScale * dWorldDeltaY;//m_dAngleRad * dWorldDeltaX +
//double dCenterX = m_dCacheCenterX - dWorldDeltaXSt;//(dWorldCenterX + m_CurrentBounds.MinX) * dScale;//
//double dCenterY = m_dCacheCenterY + dWorldDeltaYSt;//(dWorldCenterY + m_CurrentBounds.MinY) * dScale;//
m_dFrameXShift = m_dFrameCenterX - dWorldDeltaXSt;//(dWorldCenterX + m_CurrentBounds.MinX) * dScale;//
m_dFrameYShift = m_dFrameCenterY + dWorldDeltaYSt;//(dWorldCenterY + m_CurrentBounds.MinY) * dScale;//
// cairo_matrix_init (m_pMatrix, 1, 0, 0, 1, m_dCacheCenterX, m_dCacheCenterY);
//cairo_matrix_init (m_pMatrix, dScale, 0.0, 0.0, -dScale, dCenterX, dCenterY);
cairo_matrix_init_translate (m_pMatrix, m_dCacheCenterX, m_dCacheCenterY);
//rotate
//cairo_matrix_rotate(m_pMatrix, 45.0 * M_PI / 180.0);
if(!IsDoubleEquil(m_dAngleRad, 0.0))
//{
//cairo_matrix_translate(m_pMatrix, dWorldDeltaXSt, dWorldDeltaYSt);
cairo_matrix_rotate(m_pMatrix, m_dAngleRad);
//cairo_matrix_translate(m_pMatrix, -dWorldDeltaXSt, dWorldDeltaYSt);
//}
//else
cairo_matrix_translate(m_pMatrix, -dWorldDeltaXSt, dWorldDeltaYSt);
cairo_matrix_scale(m_pMatrix, m_dScale, -m_dScale);
//init matrix for Wld2DC & DC2Wld
cairo_matrix_init_translate (m_pDisplayMatrix, m_dFrameCenterX, m_dFrameCenterY);
if(!IsDoubleEquil(m_dAngleRad, 0.0))
cairo_matrix_rotate(m_pDisplayMatrix, m_dAngleRad);
cairo_matrix_translate(m_pDisplayMatrix, -dWorldDeltaXSt, dWorldDeltaYSt);
cairo_matrix_scale(m_pDisplayMatrix, m_dScale, -m_dScale);
//init matrix for TransformRect
cairo_matrix_init_translate (m_pDisplayMatrixNoRotate, m_dFrameCenterX, m_dFrameCenterY);
cairo_matrix_translate(m_pDisplayMatrixNoRotate, -dWorldDeltaXSt, dWorldDeltaYSt);
cairo_matrix_scale(m_pDisplayMatrixNoRotate, m_dScale, -m_dScale);
//set matrix to all caches
for(size_t i = 0; i < m_saLayerCaches.size(); ++i)
cairo_set_matrix (m_saLayerCaches[i].pCairoContext, m_pMatrix);
}
开发者ID:GimpoByte,项目名称:nextgismanager,代码行数:58,代码来源:gisdisplay.cpp
示例3: handle_apply_matrix
void handle_apply_matrix(cairo_matrix_t* mtx) const override {
if(std::abs(cx_) < DBL_EPSILON && std::abs(cy_) < DBL_EPSILON) {
cairo_matrix_rotate(mtx, angle_);
} else {
cairo_matrix_translate(mtx, cx_, cy_);
cairo_matrix_rotate(mtx, angle_);
cairo_matrix_translate(mtx, cx_, cy_);
}
}
开发者ID:sweetkristas,项目名称:mercy,代码行数:9,代码来源:svg_transform.cpp
示例4: gtk_css_style_render_icon_surface
void
gtk_css_style_render_icon_surface (GtkCssStyle *style,
cairo_t *cr,
cairo_surface_t *surface,
double x,
double y)
{
const GtkCssValue *shadows;
cairo_matrix_t matrix, transform_matrix, saved_matrix;
GdkRectangle extents;
g_return_if_fail (GTK_IS_CSS_STYLE (style));
g_return_if_fail (cr != NULL);
g_return_if_fail (surface != NULL);
shadows = gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_SHADOW);
if (!get_surface_extents (surface, &extents))
{
/* weird infinite surface, no special magic for you */
cairo_set_source_surface (cr, surface, x, y);
_gtk_css_shadows_value_paint_icon (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_SHADOW), cr);
cairo_paint (cr);
return;
}
cairo_get_matrix (cr, &saved_matrix);
cairo_translate (cr, x + extents.x, y + extents.y);
if (_gtk_css_transform_value_get_matrix (gtk_css_style_get_value (style, GTK_CSS_PROPERTY_ICON_TRANSFORM), &transform_matrix))
{
cairo_pattern_t *pattern;
/* XXX: Implement -gtk-icon-transform-origin instead of hardcoding "50% 50%" here */
cairo_matrix_init_translate (&matrix, extents.width / 2, extents.height / 2);
cairo_matrix_multiply (&matrix, &transform_matrix, &matrix);
cairo_matrix_translate (&matrix, - extents.width / 2, - extents.height / 2);
if (cairo_matrix_invert (&matrix) != CAIRO_STATUS_SUCCESS)
{
g_assert_not_reached ();
}
cairo_matrix_translate (&matrix, extents.x, extents.y);
pattern = cairo_pattern_create_for_surface (surface);
cairo_pattern_set_matrix (pattern, &matrix);
cairo_set_source (cr, pattern);
cairo_pattern_destroy (pattern);
_gtk_css_shadows_value_paint_icon (shadows, cr);
cairo_paint (cr);
}
cairo_set_matrix (cr, &saved_matrix);
}
开发者ID:GYGit,项目名称:gtk,代码行数:54,代码来源:gtkrendericon.c
示例5: uiDrawMatrixRotate
void uiDrawMatrixRotate(uiDrawMatrix *m, double x, double y, double amount)
{
cairo_matrix_t c;
m2c(m, &c);
cairo_matrix_translate(&c, x, y);
cairo_matrix_rotate(&c, amount);
// TODO undo the translation? also cocoa backend
cairo_matrix_translate(&c, -x, -y);
c2m(&c, m);
}
开发者ID:123vipulj,项目名称:libui,代码行数:11,代码来源:drawmatrix.c
示例6: _cairo_draw_film_foreground
void
_cairo_draw_film_foreground (cairo_t *cr,
int x,
int y,
int width,
int height,
int thumbnail_size)
{
cairo_pattern_t *pattern;
double film_scale;
cairo_matrix_t matrix;
double film_strip;
/* left film strip */
pattern = _cairo_film_pattern_create ();
if (thumbnail_size > 128)
film_scale = 256.0 / thumbnail_size;
else
film_scale = 128.0 / thumbnail_size;
film_strip = 9.0 / film_scale;
cairo_matrix_init_identity (&matrix);
cairo_matrix_scale (&matrix, film_scale, film_scale);
cairo_matrix_translate (&matrix, -x, 0);
cairo_pattern_set_matrix (pattern, &matrix);
cairo_set_source (cr, pattern);
cairo_rectangle (cr,
x,
y,
film_strip,
height);
cairo_fill (cr);
/* right film strip */
x = x + width - film_strip;
cairo_matrix_init_identity (&matrix);
cairo_matrix_scale (&matrix, film_scale, film_scale);
cairo_matrix_translate (&matrix, -x, 0);
cairo_pattern_set_matrix (pattern, &matrix);
cairo_set_source (cr, pattern);
cairo_rectangle (cr,
x,
y,
film_strip,
height);
cairo_fill (cr);
cairo_pattern_destroy (pattern);
}
开发者ID:GNOME,项目名称:gthumb,代码行数:52,代码来源:cairo-utils.c
示例7: cairo_matrix_translate
JNIEXPORT void JNICALL
Java_org_freedesktop_cairo_CairoMatrix_cairo_1matrix_1translate
(
JNIEnv* env,
jclass cls,
jlong _self,
jdouble _tx,
jdouble _ty
)
{
cairo_matrix_t* self;
double tx;
double ty;
// convert parameter self
self = (cairo_matrix_t*) _self;
// convert parameter tx
tx = (double) _tx;
// convert parameter ty
ty = (double) _ty;
// call function
cairo_matrix_translate(self, tx, ty);
// cleanup parameter self
// cleanup parameter tx
// cleanup parameter ty
}
开发者ID:cyberpython,项目名称:java-gnome,代码行数:32,代码来源:CairoMatrix.c
示例8: source
static cairo_test_status_t
source (cairo_t *cr, int width, int height)
{
cairo_pattern_t *pattern;
cairo_matrix_t mat;
cairo_translate (cr, PAD, PAD);
pattern = create_pattern (cr);
cairo_matrix_init_identity (&mat);
cairo_matrix_scale (&mat, 2, 1.5);
cairo_matrix_rotate (&mat, 1);
cairo_matrix_translate (&mat, -PAT_WIDTH/4.0, -PAT_WIDTH/2.0);
cairo_pattern_set_matrix (pattern, &mat);
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_NONE);
cairo_set_source (cr, pattern);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_paint (cr);
cairo_pattern_destroy (pattern);
return CAIRO_TEST_SUCCESS;
}
开发者ID:AZed,项目名称:cairo,代码行数:25,代码来源:recording-surface-pattern.c
示例9: draw_gdk_apply_netstate_transformation
void
draw_gdk_apply_netstate_transformation (cairo_matrix_t *fullMatrix, cairo_matrix_t *scaleMatrix,
gerbv_netstate_t *state) {
/* apply scale factor */
cairo_matrix_scale (fullMatrix, state->scaleA, state->scaleB);
cairo_matrix_scale (scaleMatrix, state->scaleA, state->scaleB);
/* apply offset */
cairo_matrix_translate (fullMatrix, state->offsetA, state->offsetB);
/* apply mirror */
switch (state->mirrorState) {
case GERBV_MIRROR_STATE_FLIPA:
cairo_matrix_scale (fullMatrix, -1, 1);
cairo_matrix_scale (scaleMatrix, -1, 1);
break;
case GERBV_MIRROR_STATE_FLIPB:
cairo_matrix_scale (fullMatrix, 1, -1);
cairo_matrix_scale (scaleMatrix, -1, 1);
break;
case GERBV_MIRROR_STATE_FLIPAB:
cairo_matrix_scale (fullMatrix, -1, -1);
cairo_matrix_scale (scaleMatrix, -1, 1);
break;
default:
break;
}
/* finally, apply axis select */
if (state->axisSelect == GERBV_AXIS_SELECT_SWAPAB) {
/* we do this by rotating 270 (counterclockwise, then mirroring
the Y axis */
cairo_matrix_rotate (fullMatrix, 3 * M_PI / 2);
cairo_matrix_scale (fullMatrix, 1, -1);
}
}
开发者ID:rupin,项目名称:test-gerbv,代码行数:33,代码来源:draw-gdk.c
示例10: GOO_CANVAS_ITEM_MODEL_GET_IFACE
/**
* goo_canvas_item_model_rotate:
* @model: an item model.
* @degrees: the clockwise angle of rotation.
* @cx: the x coordinate of the origin of the rotation.
* @cy: the y coordinate of the origin of the rotation.
*
* Rotates the model's coordinate system by the given amount, about the given
* origin.
**/
void
goo_canvas_item_model_rotate (GooCanvasItemModel *model,
gdouble degrees,
gdouble cx,
gdouble cy)
{
GooCanvasItemModelIface *iface = GOO_CANVAS_ITEM_MODEL_GET_IFACE (model);
cairo_matrix_t new_matrix = { 1, 0, 0, 1, 0, 0 };
double radians = degrees * (M_PI / 180);
iface->get_transform (model, &new_matrix);
cairo_matrix_translate (&new_matrix, cx, cy);
cairo_matrix_rotate (&new_matrix, radians);
cairo_matrix_translate (&new_matrix, -cx, -cy);
iface->set_transform (model, &new_matrix);
}
开发者ID:anderflash,项目名称:goocanvas,代码行数:26,代码来源:goocanvasitemmodel.c
示例11: _adg_motion_notify_event
static gboolean
_adg_motion_notify_event(GtkWidget *widget, GdkEventMotion *event)
{
gboolean translating, local_space, global_space;
cairo_matrix_t map, inverted;
translating = (event->state & GDK_BUTTON2_MASK) == GDK_BUTTON2_MASK;
local_space = (event->state & ADG_GTK_MODIFIERS) == 0;
global_space = (event->state & ADG_GTK_MODIFIERS) == GDK_SHIFT_MASK;
if (translating && (local_space || global_space) &&
_adg_get_map(widget, local_space, &map, &inverted)) {
AdgGtkAreaPrivate *data = adg_gtk_area_get_instance_private((AdgGtkArea *) widget);
gdouble x = event->x - data->x_event;
gdouble y = event->y - data->y_event;
cairo_matrix_transform_distance(&inverted, &x, &y);
cairo_matrix_translate(&map, x, y);
data->x_event = event->x;
data->y_event = event->y;
_adg_set_map(widget, local_space, &map);
gtk_widget_queue_draw(widget);
/* Avoid to chain up the default handler:
* this event has been grabbed by this function */
return TRUE;
}
if (_ADG_OLD_WIDGET_CLASS->motion_notify_event == NULL)
return FALSE;
return _ADG_OLD_WIDGET_CLASS->motion_notify_event(widget, event);
}
开发者ID:ntd,项目名称:adg,代码行数:35,代码来源:adg-gtk-area.c
示例12: seed_cairo_matrix_translate
static SeedValue
seed_cairo_matrix_translate (SeedContext ctx,
SeedObject function,
SeedObject this_object,
gsize argument_count,
const SeedValue arguments[],
SeedException *exception)
{
gdouble x, y;
cairo_matrix_t m;
if (argument_count != 3)
{
EXPECTED_EXCEPTION("translate", "3 arguments");
}
if (!seed_value_to_cairo_matrix (ctx, arguments[0], &m, exception))
{
seed_make_exception (ctx, exception, "ArgumentError", "translate needs an array [xx, yx, xy, yy, x0, y0]");
}
x = seed_value_to_double (ctx, arguments[1], exception);
y = seed_value_to_double (ctx, arguments[2], exception);
cairo_matrix_translate (&m, x, y);
return seed_value_from_cairo_matrix (ctx, &m, exception);
}
开发者ID:dannote,项目名称:seed,代码行数:27,代码来源:seed-cairo-matrix.c
示例13: adg_gtk_area_reset
/**
* adg_gtk_area_reset:
* @area: an #AdgGtkArea
*
* Forcibly resets the zoom ratio and position of the canvas bound
* to @area. This means the canvas will be scaled and centered on
* the current available space.
**/
void
adg_gtk_area_reset(AdgGtkArea *area)
{
AdgGtkAreaPrivate *data;
GtkWidget *parent;
const CpmlExtents *sheet;
GtkAllocation allocation;
CpmlPair size;
gdouble zoom;
g_return_if_fail(ADG_GTK_IS_AREA(area));
data = adg_gtk_area_get_instance_private(area);
cairo_matrix_init_identity(&data->render_map);
sheet = _adg_get_extents(area);
if (!sheet->is_defined || sheet->size.x <= 0 || sheet->size.y <= 0)
return;
parent = gtk_widget_get_parent((GtkWidget *) area);
gtk_widget_get_allocation(parent, &allocation);
size.x = allocation.width;
size.y = allocation.height;
zoom = MIN(size.x / sheet->size.x, size.y / sheet->size.y);
cairo_matrix_scale(&data->render_map, zoom, zoom);
cairo_matrix_translate(&data->render_map,
(size.x / zoom - sheet->size.x) / 2 - sheet->org.x,
(size.y / zoom - sheet->size.y) / 2 - sheet->org.y);
/* Trigger a resize trying to hide the scrollbars on the parent */
gtk_widget_queue_resize(parent);
}
开发者ID:ntd,项目名称:adg,代码行数:41,代码来源:adg-gtk-area.c
示例14: locker
void wxGISDisplay::DrawRaster(cairo_surface_t *surface, const OGREnvelope& Envelope, bool bDrawEnvelope)
{
wxCriticalSectionLocker locker(m_CritSect);
cairo_pattern_t *pattern = cairo_pattern_create_for_surface (surface);
cairo_matrix_t matrix;
cairo_matrix_init_scale (&matrix, m_dScale, -m_dScale);
cairo_matrix_translate(&matrix, -Envelope.MinX, -Envelope.MaxY);
cairo_pattern_set_matrix (pattern, &matrix);
cairo_set_source (m_saLayerCaches[m_nCurrentLayer].pCairoContext, pattern);
cairo_paint (m_saLayerCaches[m_nCurrentLayer].pCairoContext);
if(bDrawEnvelope)
{
//TODO:
//SetLineWidth( m_dLineWidth );
//SetColor(m_FillColour);
cairo_move_to(m_saLayerCaches[m_nCurrentLayer].pCairoContext, Envelope.MinX, Envelope.MinY);
cairo_line_to(m_saLayerCaches[m_nCurrentLayer].pCairoContext, Envelope.MaxX, Envelope.MinY);
cairo_line_to(m_saLayerCaches[m_nCurrentLayer].pCairoContext, Envelope.MaxX, Envelope.MaxY);
cairo_line_to(m_saLayerCaches[m_nCurrentLayer].pCairoContext, Envelope.MinX, Envelope.MaxY);
cairo_line_to(m_saLayerCaches[m_nCurrentLayer].pCairoContext, Envelope.MinX, Envelope.MinY);
cairo_stroke (m_saLayerCaches[m_nCurrentLayer].pCairoContext);
}
cairo_pattern_destroy (pattern);
}
开发者ID:GimpoByte,项目名称:nextgismanager,代码行数:28,代码来源:gisdisplay.cpp
示例15: RotateEnvelope
void RotateEnvelope(OGREnvelope &Env, double dAngle, double dX, double dY)
{
cairo_matrix_t Matrix;
cairo_matrix_init_translate(&Matrix, dX, dY);
cairo_matrix_rotate(&Matrix, dAngle);
cairo_matrix_translate(&Matrix, -dX, -dY);
//cairo_matrix_init_rotate(&Matrix, dAngle);
double X1 = Env.MinX;
double Y1 = Env.MaxY;
double X2 = Env.MaxX;
double Y2 = Env.MaxY;
double X3 = Env.MaxX;
double Y3 = Env.MinY;
double X4 = Env.MinX;
double Y4 = Env.MinY;
cairo_matrix_transform_point(&Matrix, &X1, &Y1);
cairo_matrix_transform_point(&Matrix, &X2, &Y2);
cairo_matrix_transform_point(&Matrix, &X3, &Y3);
cairo_matrix_transform_point(&Matrix, &X4, &Y4);
Env.MinX = wxMin(wxMin(X1, X2), wxMin(X3, X4));
Env.MinY = wxMin(wxMin(Y1, Y2), wxMin(Y3, Y4));
Env.MaxX = wxMax(wxMax(X1, X2), wxMax(X3, X4));
Env.MaxY = wxMax(wxMax(Y1, Y2), wxMax(Y3, Y4));
}
开发者ID:Momsen1061,项目名称:nextgismanager,代码行数:26,代码来源:displayop.cpp
示例16: gdk_threads_enter
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics2D_gdkDrawDrawable
(JNIEnv *env, jobject self, jobject other, jint x, jint y)
{
struct graphics2d *src = NULL, *dst = NULL;
gint s_height, s_width, d_height, d_width, height, width;
cairo_matrix_t *matrix;
cairo_operator_t tmp_op;
gdk_threads_enter();
if (peer_is_disposed(env, self)) { gdk_threads_leave(); return; }
src = (struct graphics2d *)NSA_GET_G2D_PTR (env, other);
dst = (struct graphics2d *)NSA_GET_G2D_PTR (env, self);
g_assert (src != NULL);
g_assert (dst != NULL);
if (src->debug) printf ("copying from offscreen drawable\n");
begin_drawing_operation(dst);
gdk_flush();
gdk_drawable_get_size (src->drawable, &s_width, &s_height);
gdk_drawable_get_size (dst->drawable, &d_width, &d_height);
width = min (s_width, d_width);
height = min (s_height, d_height);
matrix = cairo_matrix_create ();
cairo_surface_get_matrix (src->surface, matrix);
cairo_matrix_translate (matrix, (double)-x, (double)-y);
cairo_surface_set_matrix (src->surface, matrix);
tmp_op = cairo_current_operator (dst->cr);
cairo_set_operator(dst->cr, CAIRO_OPERATOR_SRC);
cairo_show_surface (dst->cr, src->surface, width, height);
cairo_set_operator(dst->cr, tmp_op);
cairo_matrix_translate (matrix, (double)x, (double)y);
cairo_surface_set_matrix (src->surface, matrix);
cairo_matrix_destroy (matrix);
gdk_flush();
end_drawing_operation(dst);
if (src->debug) printf ("copied %d x %d pixels from offscreen drawable\n", width, height);
gdk_threads_leave();
}
开发者ID:aosm,项目名称:gcc_40,代码行数:47,代码来源:gnu_java_awt_peer_gtk_GdkGraphics2D.c
示例17: m_cairo_matrix_translate
static int m_cairo_matrix_translate(lua_State * L)
{
cairo_matrix_t * matrix = luaL_checkudata(L, 1, MT_NAME_CAIRO_MATRIX);
double tx = luaL_checknumber(L, 2);
double ty = luaL_checknumber(L, 3);
cairo_matrix_translate(matrix, tx, ty);
return 0;
}
开发者ID:qioixiy,项目名称:xboot,代码行数:8,代码来源:l_cairo_matrix.c
示例18: matrix_init
static void matrix_init(cairo_matrix_t *mat, double width, double height, OGREnvelope *bounds){
cairo_matrix_init(mat, 1, 0, 0, -1, 0, 0);
cairo_matrix_translate(mat, 0, height * -1.0);
double w,
bWidth = fabs(bounds->MaxX - bounds->MinX),
bHeight = fabs(bounds->MaxY - bounds->MinY);
if(bWidth > bHeight){
w = width / bWidth;
} else {
w = height / bHeight;
}
cairo_matrix_scale(mat, w, w);
cairo_matrix_translate(mat, -bounds->MinX, -bounds->MinY);
}
开发者ID:PoNote,项目名称:stateface,代码行数:17,代码来源:shape.cpp
示例19: uiDrawMatrixTranslate
void uiDrawMatrixTranslate(uiDrawMatrix *m, double x, double y)
{
cairo_matrix_t c;
m2c(m, &c);
cairo_matrix_translate(&c, x, y);
c2m(&c, m);
}
开发者ID:123vipulj,项目名称:libui,代码行数:8,代码来源:drawmatrix.c
示例20: __get_obj_matrix
static inline cairo_matrix_t * __get_obj_matrix(struct lobject_t * object)
{
cairo_matrix_t * m = &object->__obj_matrix;
if(!object->__obj_matrix_valid)
{
cairo_matrix_init_identity(m);
if(object->__translate)
cairo_matrix_translate(m, object->x, object->y);
if(object->__rotate)
cairo_matrix_rotate(m, object->rotation);
if(object->__anchor)
cairo_matrix_translate(m, -object->anchorx * object->width * object->scalex, -object->anchory * object->height * object->scaley);
if(object->__scale)
cairo_matrix_scale(m, object->scalex, object->scaley);
object->__obj_matrix_valid = 1;
}
return m;
}
开发者ID:IngenicC,项目名称:xboot,代码行数:18,代码来源:l-object.c
注:本文中的cairo_matrix_translate函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论