专业编程基础技术教程

网站首页 > 基础教程 正文

Flutter根据偏移量转换角度 Offset 的使用实例

ccvgpt 2024-08-16 14:59:25 基础教程 31 ℃

在 Dart 中,dart:math 类库提供了 数学常数和函数,加上随机数生成器,本文章来概述一下。

在使用前 你需要导入依赖

Flutter根据偏移量转换角度 Offset 的使用实例

import 'dart:math';

1 Offset 概述

Offset 在Dart 中,用来表示 创建一个偏移量。第一个参数设置了dx,水平分量,第二个参数设置了dy,垂直分量。


2 Offset 的 direction

这个偏移量的角度为从正x轴顺时针方向的弧度,范围是 -pi ~ pi(-π ~ π),假设x轴的正值向右而y轴的正值向下。

  • 0表示dy = 0 dx = 0或正, Offset(0,0) 表示无偏移,在原点位置
  • 从0到pi/2表示右下象限的dx和dy为正值。
  • 从pi/2到 pi 的值表示dx的负值,dy的正值,即左下象限。
  • 从0到 -pi /2表示右上象限的dx为正值,dy为负值。
  • 从- pi/2到-pi表示左上象限dx和dy的负值。

当dy = 0 dx为负时,direction的值是 pi。

当dx为0时,dy为正,direction为 pi/2 ,dy为负,direction 为- pi/2。

查看源码 Offset 的 direction 实际上是反三角函数 tan 的计算

double get direction => math.atan2(dy, dx);


3 根据偏移量来计算偏移角度

import 'dart:math';

import 'dart:ui';

void main() {
  //定义偏移点
  Offset start = new Offset(200, 200);

  //获取计算偏移量 弧度
  double direction = start.direction;
  //获取直线偏移角度
  double angle = direction * 180 / pi;
  //保留两位小数
  String angleStr = angle.toStringAsFixed(2);
  
  print('tan direction $direction');

  print('角度: $angleStr°');
}


Tags:

最近发表
标签列表