当前位置: 首页 > news >正文

哪有做网站公司电子商务网站建设评价

哪有做网站公司,电子商务网站建设评价,微信分销网站建设价格,企业推广策划之前用 Flutter Canvas 画过一个三角三角形#xff0c;html 的 Canvas 也画过一次类似的#xff0c; 今天用 Flutter Canvas 试了下 感觉差不多#xff1a; html 版本 大致效果如下#xff1a; 思路和 html 实现的类似#xff1a; 也就是找出点的位置#xff0c;使用二阶… 之前用 Flutter Canvas 画过一个三角三角形html 的 Canvas 也画过一次类似的 今天用 Flutter Canvas 试了下 感觉差不多 html 版本 大致效果如下 思路和 html 实现的类似 也就是找出点的位置使用二阶贝塞尔曲线实现 代码如下 import package:flutter/material.dart;class PageCanvas extends StatefulWidget {const PageCanvas({Key? key}) : super(key: key);overrideStatePageCanvas createState() _PageCanvasState(); }class _PageCanvasState extends StatePageCanvas with TickerProviderStateMixin {late Animationdouble animation;late AnimationController controller;double _waveHeight 0.5;overridevoid initState() {// TODO: implement initStatesuper.initState();controller AnimationController(duration: const Duration(milliseconds: 2000), vsync: this);animation Tweendouble(begin: 0, end: 1).animate(controller);controller.repeat();}overrideWidget build(BuildContext context) {Size size MediaQuery.of(context).size;return Scaffold(appBar: AppBar(title: const Text(Canvas),backgroundColor: Colors.blue,),body: Column(children: [AnimatedBuilder(animation: controller,builder: (context, widget) {return CustomPaint(size: Size(size.width, size.height / 3),painter: MyPainter(animation.value, _waveHeight),);}),const SizedBox(height: 60,),Center(child: SizedBox(// color: Colors.grey,width: 200,height: 200,child: ClipOval(child: Container(color: Colors.grey.withOpacity(0.3),child: AnimatedBuilder(animation: controller,builder: (context, widget) {return CustomPaint(size: Size(size.width, size.height / 3),painter: MyPainter2(animation.value, _waveHeight),);}),),),),),const SizedBox(height: 20,),Slider(min: 0,max: 2,value: _waveHeight,onChanged: (value) {setState(() {_waveHeight value;});//_waveHeight value;},)],),);}overridevoid dispose() {controller.dispose();// TODO: implement disposesuper.dispose();} }class MyPainter extends CustomPainter {final double value;final double waveHeight;const MyPainter(this.value, this.waveHeight);overridevoid paint(Canvas canvas, Size size) {// print(value);Paint paint Paint();Path path Path();double positionX -size.width * value;double positionY 100;double positionRange 5 * (1 waveHeight);double positionX2 -size.width * (1 - value);double positionY2 110;double positionRange2 10 * (1 waveHeight);double positionX3 -size.width * (1.3 - value);double positionY3 120;double positionRange3 20 * (1 waveHeight);double step size.width / 4;//path.moveTo(0 positionX, positionY);for (int i 1; i 13; i) {if (i % 2 1) {path.quadraticBezierTo(step * (2 * i - 1) positionX,positionY - positionRange, step * (2 * i) positionX, positionY);} else {path.quadraticBezierTo(step * (2 * i - 1) positionX,positionY positionRange, step * (2 * i) positionX, positionY);}}path.lineTo(step * 10, 250);path.lineTo(0, 250);path.close();paint.color Colors.blue.withOpacity(0.2);canvas.drawPath(path, paint);canvas.save();canvas.restore();path Path();path.moveTo(0 positionX2, positionY2);for (int i 1; i 13; i) {if (i % 2 1) {path.quadraticBezierTo(step * (2 * i - 1) positionX2,positionY2 - positionRange2,step * (2 * i) positionX2,positionY2);} else {path.quadraticBezierTo(step * (2 * i - 1) positionX2,positionY2 positionRange2,step * (2 * i) positionX2,positionY2);}}path.lineTo(step * 10, 250);path.lineTo(0, 250);path.close();paint.color Colors.blue.withOpacity(0.6);canvas.drawPath(path, paint);canvas.save();canvas.restore();path Path();path.moveTo(0 positionX3, positionY3);for (int i 1; i 13; i) {if (i % 2 1) {path.quadraticBezierTo(step * (2 * i - 1) positionX3,positionY3 - positionRange3,step * (2 * i) positionX3,positionY3);} else {path.quadraticBezierTo(step * (2 * i - 1) positionX3,positionY3 positionRange3,step * (2 * i) positionX3,positionY3);}}path.lineTo(step * 10, 250);path.lineTo(0, 250);path.close();paint.color Colors.blue;canvas.drawPath(path, paint);}overridebool shouldRepaint(covariant CustomPainter oldDelegate) {// TODO: implement shouldRepaintreturn oldDelegate ! this;//return true;} }class MyPainter2 extends CustomPainter {final double value;final double waveHeight;const MyPainter2(this.value, this.waveHeight);overridevoid paint(Canvas canvas, Size size) {// print(value);Paint paint Paint();Path path Path();double positionX -size.width * value;double positionY 50;double positionRange 5 * (1 waveHeight);double positionX2 -size.width * (1 - value);double positionY2 60;double positionRange2 10 * (1 waveHeight);double positionX3 -size.width * (1.3 - value);double positionY3 70;double positionRange3 20 * (1 waveHeight);double step size.width / 4;//path.moveTo(0 positionX, positionY);for (int i 1; i 13; i) {if (i % 2 0) {path.quadraticBezierTo(step * (2 * i - 1) positionX,positionY - positionRange, step * (2 * i) positionX, positionY);} else {path.quadraticBezierTo(step * (2 * i - 1) positionX,positionY positionRange, step * (2 * i) positionX, positionY);}}path.lineTo(step * 10, 250);path.lineTo(0, 250);path.close();paint.color Colors.blue.withOpacity(0.2);canvas.drawPath(path, paint);canvas.save();canvas.restore();path Path();path.moveTo(0 positionX2, positionY2);for (int i 1; i 13; i) {if (i % 2 0) {path.quadraticBezierTo(step * (2 * i - 1) positionX2,positionY2 - positionRange2,step * (2 * i) positionX2,positionY2);} else {path.quadraticBezierTo(step * (2 * i - 1) positionX2,positionY2 positionRange2,step * (2 * i) positionX2,positionY2);}}path.lineTo(step * 10, 250);path.lineTo(0, 250);path.close();paint.color Colors.blue.withOpacity(0.6);canvas.drawPath(path, paint);canvas.save();canvas.restore();path Path();path.moveTo(0 positionX3, positionY3);for (int i 1; i 13; i) {if (i % 2 0) {path.quadraticBezierTo(step * (2 * i - 1) positionX3,positionY3 - positionRange3,step * (2 * i) positionX3,positionY3);} else {path.quadraticBezierTo(step * (2 * i - 1) positionX3,positionY3 positionRange3,step * (2 * i) positionX3,positionY3);}}path.lineTo(step * 10, 250);path.lineTo(0, 250);path.close();paint.color Colors.blue;canvas.drawPath(path, paint);canvas.save();canvas.restore();}overridebool shouldRepaint(covariant CustomPainter oldDelegate) {// TODO: implement shouldRepaintreturn oldDelegate ! this;//return true;} }
http://www.pierceye.com/news/65412/

相关文章:

  • 专业网站设计的网站施工合同电子版
  • 佛山企业网站制作哪家好免费网站域名空间申请
  • 兰州做网站企业站长之家的作用
  • 建设地产网站网站备案更改需要多久
  • 新华书店的做的数字阅读网站公司网站建设开发济南兴田德润简介图片
  • 设计公司网站源码廊坊模板网站建设
  • 建设网站内容的策划书0基础做电商从何下手
  • 精美公司网站源码wordpress 适应手机
  • 南京企业建网站流程专做袜子的网站
  • 网站推广到底应该怎么做商务网站设计实训报告
  • 网站建设流程报价seo综合优化公司
  • 公司需要一个简单的网站企业网站开发的目的
  • 网站后台权限管理怎么做的一 网站建设的目的与意义
  • 中英双语网站模板做网站需要买服务器吗
  • 行业门户网站的优化怎么做yps行业门户系统手机网站开发兼容性
  • 什么网站可以做期刊封面财务管理培训
  • word可以做招聘网站吗只做硬件网站
  • 淄博网站建设开发中国视觉设计网站
  • 小程序要先做网站seo北京网站推广
  • 网站规划与建设大作业大连高新园区地图
  • icp网站 是什么意思做最好的在线看片网站
  • 那种限时购的网站如何做wordpress友言
  • 杨浦专业网站建设自己做的网站源码如何安装
  • 网页制作企业网站作业铝型材网络机柜设计报告
  • 龙岩做网站的地方有哪些wordpress 自定义头像
  • 阿里云免费网站建设模板郑州网络推广哪家实力强
  • 网站模板图wordpress视频主题吾爱破解版
  • 印刷报价下单网站开发wordpress改google字体
  • 云南政务网站建设ios软件开发工程师
  • 江苏城乡建设厅网站室内装修设计师学什么专业