dart系列之:数学什么的就是小意思,看我dart如何玩转它

简介: dart系列之:数学什么的就是小意思,看我dart如何玩转它

目录



简介


dart也可以进行数学运算,dart为数学爱好者专门创建了一个dart:math包来处理数学方面的各种操作。dart:math包提供了正弦,余弦,最大值,最小值和随机数等操作。


一起来看看dart:math包都能做什么吧。


dart:math包的构成


如果你去查看dart:math的源代码,你会发现,dart:math包其实很简单,它里面只有4个文件。分别是:


math.dart,random.dart,point.dart和rectangle.dart。


后面两个文件,主要跟二维坐标有关,这里不详细说明。


我们常用到的就是前面两个文件,math和random。


math


math中定义了我们在数学运算中常用到的一些常量,如:


const double e = 2.718281828459045;
const double ln10 = 2.302585092994046;
const double ln2 = 0.6931471805599453;
const double log2e = 1.4426950408889634;
const double log10e = 0.4342944819032518;
const double pi = 3.1415926535897932;
const double sqrt1_2 = 0.7071067811865476;
const double sqrt2 = 1.4142135623730951;


计算最大值和最小值:


assert(max(18, 20) == 20);
assert(min(18, 20) == 18);


使用三角函数:


assert(cos(pi) == -1.0);
var degrees = 30;
var radians = degrees * (pi / 180);
var sinOf30degrees = sin(radians);
assert((sinOf30degrees - 0.5).abs() < 0.01);


Random


dart中的random包提供了一些比较有用的生成随机数的方法,先看下Random类的定义:


abstract class Random {
  external factory Random([int? seed]);
  external factory Random.secure();
  int nextInt(int max);
  double nextDouble();
  bool nextBool();
}


我们可以使用Random中提供的nextInt,nextDouble和nextBool来生成对应的随机数:


var random = Random();
random.nextDouble(); 
random.nextInt(10); 
random.nextBool();


默认情况下,Random生成的是伪随机数,要想生成更加安全的随机数,比如密码学意义上的随机数,Random还有一个更加安全的实现Random.secure()。


总结



以上就是dart中math库的介绍。

相关文章
|
JavaScript 前端开发 API
007 Umi 使用 TypeScript 提升开发者体验
007 Umi 使用 TypeScript 提升开发者体验
1398 0
007 Umi 使用 TypeScript 提升开发者体验
|
机器学习/深度学习 人工智能 自然语言处理
人工智能的边界拓展:从理论到实践的飞跃####
本文探讨了人工智能(AI)技术的最新进展,特别是深度学习领域的创新如何推动AI从理论研究走向广泛应用。通过分析几个关键领域的实际应用案例,如医疗健康、自动驾驶和自然语言处理,本文揭示了AI技术的潜力及其对社会和经济的深远影响。文章还讨论了当前面临的挑战,包括伦理问题和技术瓶颈,并展望了未来的发展趋势。 ####
|
传感器 数据采集 人工智能
数字孪生与智慧城市:构建未来城市模型
【10月更文挑战第31天】在信息化和智能化高速发展的今天,数字孪生技术正逐步成为推动智慧城市建设的核心力量。本文将深入探讨数字孪生技术在城市规划、管理、交通和环保等方面的应用,以及它如何助力构建未来城市的理想模型。数字孪生通过实时数据同步和双向交互,实现城市运行状态的全面监控、预测和优化,推动城市向更加智慧、绿色和可持续的方向发展。
|
8月前
|
弹性计算 固态存储 NoSQL
阿里云服务器系统盘ESSD AutoPL、ESSD和ESSD Entry云盘有什么区别?如何选择?
阿里云服务器系统盘提供ESSD Entry、ESSD云盘和ESSD AutoPL三种类型,性能与适用场景各不相同。ESSD Entry云盘性价比高,适合开发测试;ESSD云盘分为PL0-PL3四个级别,适用于时延敏感或I/O密集型业务;ESSD AutoPL云盘实现容量与性能解耦,支持自定义预配置性能及突发性能,最高可达100万IOPS。选择时可根据实际需求与预算决定,经济型实例推荐ESSD Entry,高性能场景建议ESSD云盘或ESSD AutoPL。具体价格与参数可参考阿里云官方文档。
|
11月前
|
存储 数据处理 vr&ar
虚拟仿真'加速器'|实时云渲染技术赋能三种虚拟仿真实验教学系统
虚拟仿真系统通过模拟真实或虚拟环境,广泛应用于航空航天、汽车工业、医学等领域。虚拟仿真实验教学借助实时云渲染技术,实现了部署简洁、管理集中、即点即用的极简使用方式,推动了教育资源开放共享。实时云渲染技术赋能B/S型、C/S型和云VR型三种虚拟仿真实验教学系统,支持随时随地接入实验课程,提升学生实验技能和创新能力。Paraverse平行云作为实时云渲染企业级服务的先行者,已助力多所高校搭建虚拟仿真实验教学平台,实现跨院系资源共享与管理。
315 15
|
12月前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
Java Python Windows
软件安装(四):Pycharm安装详细教程
本文提供了一个详细的PyCharm安装教程,包括下载、安装和使用步骤,特别强调了在Windows环境下安装时不要选择关联.py文件的选项,并说明了如何配置系统环境变量Path以及激活账号密码。
385 1
软件安装(四):Pycharm安装详细教程
|
存储 Shell 编译器
多人协作使用git如何解决冲突?
多人协作使用git如何解决冲突?
380 0
|
运维 前端开发 jenkins
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化
之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个实例,容错率低 如何去解决?
1138 1
Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化