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

Posted 早起的年轻人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter根据偏移量转换角度 Offset 的使用实例相关的知识,希望对你有一定的参考价值。

也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好。


学习Dart语言,首先我们需要使用到一个语言调试工具 DartPad

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

在使用前 你需要导入依赖

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°');




完毕


小编也写了几本书,如果你有兴趣可以去看看


以上是关于Flutter根据偏移量转换角度 Offset 的使用实例的主要内容,如果未能解决你的问题,请参考以下文章

使用偏移量的容器动画 - Flutter

根据 OffSet 值查找文本值、偏移量、输入公式

kafka根据offset查找消息流程

Python习题:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)。例:输入: str="abcdefg", offset = 3 输出: "efgab

Flutter TextSelection.collapsed:未定义命名参数“offset”

将其他时区转换为本地时区(偏移量)