gpt4 book ai didi

flutter - 如何检测 flutter 中的阻力速度?

转载 作者:行者123 更新时间:2023-12-03 04:19:45 25 4
gpt4 key购买 nike

如何检测 flutter 中的阻力速度?
我想使用自定义绘画在屏幕上以 flutter 的方式绘制屏幕,​​当速度较小时,笔划宽度应较小,但是当拖动速度较高时,笔划宽度应较大。

GestureDetector(
onPanUpdate: (DragUpdateDetails details) {
setState(
() {
RenderBox object = context.findRenderObject();
Offset _localPosition =
object.globalToLocal(details.globalPosition);
_points = List.from(_points)..add(_localPosition);
},
);
},
onPanEnd: (DragEndDetails details) => {
_deletedPoints.clear(),
_points.add(null),
// _listPoints.add(_points),
// _listPoints = List.from(_listPoints)..add(_points),
},
child: CustomPaint(
painter: Draw(points: _points),
size: Size.infinite,
),
),
扩展customPainter的自定义绘图小部件
class Draw extends CustomPainter {
List<Offset> points;
// List<List<Offset>> points;
Draw({this.points});

@override
void paint(Canvas canvas, Size size) {
Paint paint = Paint()
..color = brushColor
..strokeCap = StrokeCap.round
..strokeWidth = brushWidth;

for (int i = 0; i < points.length - 1; i++) {
if (points[i] != null && points[i + 1] != null) {
canvas.drawLine(points[i], points[i + 1], paint);
}
}
}

@override
bool shouldRepaint(Draw oldDelegate) => oldDelegate.points != points;
}

最佳答案

速度是在给定时间内位置变化了多少。
为此,您在details.delta.distance回调中具有onPanUpdate,该回调返回一个 double 值,指示自上次更新以来指针已移动了多少,它越大,速度越大。
根据您的情况,您可以根据行进距离更改笔划宽度。

关于flutter - 如何检测 flutter 中的阻力速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63390755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com