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

用processing画李萨如曲线

李萨如曲线

有没有对示波器上变化曲线产生过兴趣,它叫做李萨如曲线:

数学上,利萨茹(Lissajous)曲线(又称利萨茹图形、李萨如图形或鲍迪奇(Bowditch)曲线)是两个沿着互相垂直方向的正弦振动的合成的轨迹

(参见http://zh.wikipedia.org/wiki/%E5%88%A9%E8%90%A8%E8%8C%B9%E6%9B%B2%E7%BA%BF)

代码

   1: //int n=4;
   2: int p=17;
   3: int q=15;
   4:  
   5: int a = displayWidth /2 ;
   6: int b = a;//displayHeight /2 ;
   7:  
   8: int radius = 2;
   9: float miu = 0;//PI / 2 / p;
  10: float miu_max = TWO_PI;
  11: float miu_delta = miu_max / 100;
  12:  
  13: public void setup() {
  14:   size(displayWidth, displayHeight);
  15:   background(0);
  16:   frameRate(2);
  17:   
  18:   a = displayWidth / 5 ;
  19:   b = a ;
  20: }
  21:  
  22: public void draw() {  
  23:  
  24:     miu += miu_delta;
  25:     if (miu >= miu_max)
  26:         miu = 0;
  27: //    if (miu >= miu_max)
  28: //    {
  29: //        miu_delta = -miu_delta;
  30: //        miu += miu_delta;
  31: //    }
  32: //    else if (miu < 0)
  33: //    {
  34: //        miu_delta = -miu_delta;
  35: //        miu += miu_delta;
  36: //    }
  37:     
  38:     fill(0,0,0,250);
  39:     rect(-1,-1, displayWidth+1, displayHeight+1);
  40:     
  41:     int last_x = -1;
  42:     int last_y = -1;
  43:     
  44:     for (float theta=0;theta<TWO_PI;theta+=TWO_PI/360)
  45:     {
  46:         int x = (int) (a * sin(p * theta)) + displayWidth /2;
  47:         int y = (int) (b * sin(q * theta + (miu))) + displayHeight /2;
  48:         
  49:         colorMode(HSB, 255);
  50:         stroke(90, 255, 255);
  51:         fill(90, 255, 255);
  52:         
  53:         if (last_x != -1 >> last_y != -1)
  54:         {
  55:             line(last_x, last_y, x, y);
  56:             line(last_x-1, last_y, x-1, y);
  57:         }
  58:         
  59:         last_x = x;
  60:         last_y = y;
  61:  
  62:         //ellipse(x, y, radius, radius);
  63:     }
  64:     
  65: }

截图

math_trigo_Lissajous_1.png

 

math_trigo_Lissajous.png

转载于:https://www.cnblogs.com/long123king/p/3415499.html

相关文章:

  • MVC笔记 初识模型(二)
  • android 手机网络接入点名称及WAP、NET模式的区别
  • 金蝶osf接口开发_金蝶云·星辰 | ?小微企业服务成长平台
  • 小程序商店刷榜_怎么注册微信小程序商店
  • 中getname_【136期】你能谈谈Java中 synchronized 对象锁和类锁的区别
  • 加到service中无效_给 COLA 做减法:应用架构中的“弯弯绕设计”
  • set集合 结构体_Swift - 集合(Set)使用详解(附样例)
  • 前端动态获取servlet虚拟路径_Servlet 过滤器和异常处理
  • access中下划线是font_Python中的模块及扩展库
  • mac vs 返回上一步_Figma:使用mac上的字体 | 转换ttc字体文件
  • cmd 访问url_「图解」创建第一个django应用、配置并访问
  • 周星驰经典超清图片_周星驰与刘德华究竟谁更火?为何30年没合作?看王晶的评价...
  • python小老鼠编程_江门Python技能学习价格实惠,python数组学习价格表
  • android layoutinflater获取的textview无法改变值_Android 值得深入思考的几个面试问答分享...
  • gmat模考_GMAT模考成绩不太准原因大盘点
  • [译]CSS 居中(Center)方法大合集
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Angular 2 DI - IoC DI - 1
  • Fundebug计费标准解释:事件数是如何定义的?
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • nginx 配置多 域名 + 多 https
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • React-flux杂记
  • webpack4 一点通
  • 官方解决所有 npm 全局安装权限问题
  • 一天一个设计模式之JS实现——适配器模式
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ionic入门之数据绑定显示-1
  • Java总结 - String - 这篇请使劲喷我
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #单片机(TB6600驱动42步进电机)
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (差分)胡桃爱原石
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)程序员技术练级攻略
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net6使用WebSocket与前端进行通信
  • .NetCore 如何动态路由
  • .NET处理HTTP请求
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .net中生成excel后调整宽度
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • /run/containerd/containerd.sock connect: connection refused
  • @angular/cli项目构建--http(2)
  • @requestBody写与不写的情况
  • @Transactional 竟也能解决分布式事务?
  • [APIO2015]巴厘岛的雕塑