Метод 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.
Смотрите также
-
класс
Canvas,
холст внутриCustomPainter -
класс
CustomPainter,
код рисунка -
класс
Paint,
кисть холста -
класс
Path,
контур фигуры