Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
294 of 1024 menu
◀ ▶

Метод translate

Метод translate класса Canvas сдвигает систему координат. Первое число сдвигает вправо, второе вниз. Отрицательное число сдвигает влево или вверх. Уже нарисованное остаётся на месте.

Синтаксис

canvas.translate(dx, dy)

Параметры

Параметр Описание
dx Сдвиг по горизонтали. Положительное число идёт вправо, отрицательное влево.
dy Сдвиг по вертикали. Положительное число идёт вниз, отрицательное вверх.

Пример

Давайте вызовем translate на CustomPaint:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(220, 100), painter: _TranslatePainter(), ), ), ), ), ); } class _TranslatePainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.translate(80, 20); canvas.drawRect(Rect.fromLTWH(0, 0, 60, 40), Paint()..color = Colors.deepOrange); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране виден результат рисования на холсте.

Пример

Давайте повторим рисунок в области побольше:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: CustomPaint( size: const Size(280, 120), painter: _TranslatePainter2(), ), ), ), ), ); } class _TranslatePainter2 extends CustomPainter { @override void paint(Canvas canvas, Size size) { canvas.translate(80, 20); canvas.drawRect(Rect.fromLTWH(0, 0, 60, 40), Paint()..color = Colors.deepOrange); } @override bool shouldRepaint(covariant CustomPainter oldDelegate) => false; }

На экране та же фигура в более широком CustomPaint.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить