单击和一些案例

一、单击

1、单击概念

       除了定位鼠标之外,processing鼠标还捕捉鼠标是否被单击。mousePressed在鼠标单击和不单击的情况下有不同的值。mousePressed变量是一种bool变量,也就是说它只有两个可能的值,真和假。当鼠标按下的时候mousePressed的值为真。

2、单击鼠标案例

      2.1单击鼠标

       mousePressed和if语句一同判断一行代码什么时候运行什么时候不运行。案例代码如图1

                                            图1

       运行结果如图2

                     图2

       当鼠标单击时,条件为真(true),条件成立,颜色为黑。

      2.2else补充

       当条件为假时,else块内容会运行。代码如图3

                                            图3

       鼠标并未单击时,else代码运行,进行单击测试的那块颜色为白色,如图4

                    图4

    2.3mouseButton

       mouseButton的变量可以是 LEFT、RIGHT、CENTER。我们可以用mouseButton来进行条件判断。代码如图5

                                        图5

       保存并运行如图6

                图6

3、定位

       一个if结构可以和mouseX和mouseY来判定鼠标在窗口的位置。案例代码如下

float x;
int offset =10;
void setup(){
size(240,120);
x=width/2;
}
void draw(){
  background(204);
  if(mouseX>x){
    x+=0.5;
    offset=-10;
  }
  if(mouseX<x){
    x-=0.5;
    offset=10;
  }
  line(x,0,x,height);
  line(mouseX,mouseY,mouseX+offset,mouseY-10);
  line(mouseX,mouseY,mouseX+offset,mouseY+10);
  line(mouseX,mouseY,mouseX+offset*3,mouseY);
}
       保存运行如图7

                 图7

4、圆形边界案例

       为了检验圆形,我们用dist()函数来得到圆心到光标的距离,然后我们判断这个距离是否小于圆的半径。如果小于圆的半径,我们就知道光标在圆内。下面这个例子中,当光标在圆形区域的时候,它的尺寸会变大。案例代码如图8

                                                图8

       保存并运行如图9

                     图9

       当鼠标靠近圆,圆会变黑且放大,如图10

                     图10

5、矩形边界案例

       我们用做四个独立的检测来检查光标是否在矩形符合条件的边上,然后我们比较每个检测结果,如果它们都是真的,我们就知道光标在矩形内。案例代码如图11

                                                                                                          图11

       保存运行如图12

                     图12

      当所有的检测都被执行且执行结果为真的时候,表示光标在内部,鼠标移动到矩形内,矩形变黑没如图13

                     图13

二、类型

1、Processing会跟踪键盘上那个按键被按下以及最后一个被按下的键。

2、检测按键案例

      在这个例子中,当任意键按下时会绘制第二条线,代码如图14

                                                图14

      保存运行如图15

                        图15

      按下任意键会绘制第二条线,如图16

                        图16

3、绘制字母

      在这个例子中使用textSize()函数设置字母的尺寸,用textAlign()函数设置文字在它的x轴中心上,用text()函数绘制文字。

      案例代码如图17

                        图17

      保存运行如图18

                         图18

      当按下任一个字母,草图上就会出现那个字母,比如我按下A(按下的字母必须时大写字母)结果如图19

                        图19

4、检查特殊按键

      在这个案例中,我们检测输入的是否是H还是N。我们使用比较操作符“==”来检测key的值是否与我们要找的字符相同。案例代码如图20

                                    图20

      保存运行如图21

              图21

      当按下小写H或者大写H时,草图会显示H,当按下小写n或者大写N时,草图会显示N。

5、用方向键移动

      检测方向键左键或者右键,并控制一个矩形的移动。代码如图22

     

                                              图22

      保存运行如图23

                        图23

三、映射

1、将值映射到范围内

      两条线的位置由mouseX变量控制。灰色的线和光标位置同步,但黑色的线保持在屏幕中心更近的位置,距离左右边的白线更远。案例代码如图24

                                            图24

      保存运行如图25

                  图25

2、用map()函数做转换

     map()函数使代码更容易读取,因为最小值和最大值被写成了更清晰的参数,mouseX的值从0到width(窗口的宽度转变为60~180,案例代码如图26

                                        图26

      运行结果和图25时一样的。

四、作业补充

1、彩虹代码

int radius = 200;
void setup(){
  size(400,400);
}
void draw(){
  background(255);
  noStroke();
  fill(#de4349);
  arc(180,200,radius,radius,radians(180),radians(360));
  fill(#faad51);
  arc(180,200,radius-20,radius-20,radians(180),radians(360));
  fill(#f9ef52);
  arc(180,200,radius-40,radius-40,radians(180),radians(360));
  fill(#91c640);
  arc(180,200,radius-60,radius-60,radians(180),radians(360));
  fill(#62cef4);
  arc(180,200,radius-80,radius-80,radians(180),radians(360));
  fill(#5462ad);
  arc(180,200,radius-100,radius-100,radians(180),radians(360));
  fill(#845fa5);
  arc(180,200,radius-120,radius-120,radians(180),radians(360));
  fill(255);
  arc(180,200,radius-140,radius-140,radians(180),radians(360));
}

      保存运行如图27

                                   图27

五、下期讲平移、旋转、缩放和媒体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apache2和httpd web服务器

apache2和httpd web服务器 apache2和httpd web服务器是啥apache是软件基金会apache2是一个web服务httpd和apache2是同一个东西&#xff0c;但是不同linux发行版中叫法不一样。就是同一个东西&#xff0c;但是看上去有一些不一样。 apache2和httpd web服务器是啥 apache是软件基…

Scikit-learn内置的数据集

数据集是我们学习和研究机器学习不可或缺的基础&#xff0c;Scikit-learn库内置了丰富的数据集资源&#xff0c;非常适合初学者用来练习和验证机器学习算法的效果。 一、鸢尾花数据集 鸢尾花数据集&#xff08;Iris Dataset&#xff09;是机器学习领域中最著名的数据集之一&am…

【每日一篇】使用图神经网络进行交通速度预测的上下文感知知识图谱框架【为了自己方便读论文】

Context-aware knowledge graph framework for traffic speed forecasting using graph neural network 论文链接&#xff1a; https://arxiv.org/abs/2407.17703 翻译&#xff1a; 摘要 人类流动在空间和时间上受到城市环境的密切影响&#xff0c;构成了理解交通系统的重…

MarkTool之UDP

UDP客户端&#xff0c;主要作用是与UDP服务端连接进行数据通讯 1、连接参数有4个&#xff0c;绑定IP和Port&#xff0c;服务端IP和Port 2、接收数据和发送数据的参数设置&#xff0c;有16进制&#xff0c;有字符&#xff0c;有原始数据&#xff0c;都可进行选择 3、定时发送&a…

理解常见开源协议的区别

本文将介绍几种常见的开源许可证&#xff0c;包括GPL、LGPL、MIT、Apache、BSD 和 木兰协议&#xff08;Mulan PSL&#xff09;&#xff0c;并详细解释它们的区别。 1. GPL (GNU General Public License) GPL 是最著名和最常用的开源许可证之一&#xff0c;由自由软件基金会 …

泰安网站建设有几大特点

泰安网站建设的特点可以分为以下几个方面&#xff1a; 一、突出地域特色。泰安是山东省的一个地级市&#xff0c;具有悠久的历史和深厚的文化底蕴。在网站建设过程中&#xff0c;泰安的特色文化和旅游资源应得到充分的展示。可以通过优美的图片、详细的介绍和生动的文字&#x…

【Python 基础】字典和结构化数据 -1

字典和结构化数据 在本文中,我将介绍字典数据类型,它提供了一种灵活的访问和组织数据的方式。然后,结合字典与关于列表的知识,你将学习如何创建一个数据结构,对井字棋盘建模。 字典数据类型 像列表一样,“字典”是许多值的集合。但不像列表的下标,字典的索引可以使用…

【STM32】SysTick定时器

SysTick定时器 前言一、介绍最大计时时间 固件库函数体现用途 总结 前言 参考一下猫咪博主的文章&#xff0c;作为补充学习⇨【STM32】Systick滴答定时器 当然我主要还是跟着金善愚老师学的&#xff0c;我觉得他真的有种高中班主任的亲切感。那个1812的名号往那里一放&#x…

【vluhub】elasticsearch漏洞

Elasticsearch介绍 是Apache旗下的一个开源的、分布式、RESTful的搜索和分析引擎&#xff0c;适用于java语言项目 默认端口9200 kali中搭建ElasticHD, 即可未授权绕过ES可视化界面 直通车 https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/download/1.4/elas…

Csrf复习(pikachu靶场和防御手段)

CSRF漏洞简介 CSRF又称跨站请求伪造&#xff0c;是指攻击者在用户登录的状态下&#xff08;浏览器保存了用户的cookie&#xff09;通过伪造恶意url诱导用户点击&#xff0c;借助用户的cookie网站权限&#xff08;冒充用户身份来进行非法操作&#xff0c;对于服务器来说是合法的…

视觉SLAM第二讲

SLAM分为定位和建图两个问题。 定位问题 定位问题是通过传感器观测数据直接或间接求解位置和姿态。 通常可以分为两类&#xff1a;基于已知地图的定位和基于未知地图的定位。 基于已知地图的定位 利用预先构建的地图&#xff0c;结合传感器数据进行全局定位。SLAM中的全局…

如何利用开源Bug管理系统提高团队效率

国内外主流的10款开源bug管理系统对比&#xff1a;PingCode、Worktile、Trac、WebIssues、MantisBT、Bugzilla 、Fossil、The Bug Genie、TestLink 、OpenProject。 在软件开发的复杂世界中&#xff0c;Bug管理可能是一个令人头疼的问题&#xff0c;尤其是当工具不足以捕捉和解…

这才是做项目的正确打开方式

基于大数据的推荐机制&#xff0c;对于没有接触到信息的人而言&#xff0c;会认为获取行业外的信息会很困难&#xff0c;对于已经接触到信息的人而言&#xff0c;又会出现选择困难症。当系统对你锁定标签后&#xff0c;就会频繁的给你推荐跟标签对应的信息&#xff0c;信息一多…

【传知代码】智慧医疗:纹理特征VS卷积特征(论文复现)

在这个无处不在的技术革新的时代&#xff0c;计算机视觉和机器学习成为了医疗领域中不可或缺的力量。在这篇文章中&#xff0c;我们将探讨两种突出的技术&#xff1a;纹理特征和卷积特征。它们如何在医学影像分析中竞争与协作&#xff0c;为医生提供更深入、更精确的诊断信息&a…

iOS基础---常用三方库:Masonry、SDWebImage

系列文章目录 iOS基础—多线程&#xff1a;GCD、NSThread、NSOperation iOS基础—Category vs Extension iOS基础—常用三方库&#xff1a;Masonry、SDWebImage 文章目录 系列文章目录一、Masonry1.Masonry简介2.使用示例3.源码剖析 二、SDWebImage1.SDWebImage简介2.主要功能…

不同WEB下的的ApplicationContext的选择

依赖 ApplicationContext类型选择 默认情况下&#xff0c;spring通过选择的web端的框架来选择使用哪个ApplicationContext子类&#xff0c;默认情况下我们一般使用spring mvc框架&#xff0c;这个时候AC的实现类为 org.springframework.boot.web.servlet.context.AnnotationC…

在 LCD 上显示 png 图片-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

在 LCD 上显示 png 图片 PNG 简介 无损压缩&#xff1a;PNG 使用 LZ77 派生算法进行无损压缩&#xff0c;确保图像质量不受损&#xff0c;且压缩比高 体积小&#xff1a;通过高压缩比&#xff0c;PNG 文件体积小&#xff0c;适合网络传输 索引彩色模式&#xff1a;PNG-8 格式…

计划外投料

计划外领料通过A07 R10发料/其他&#xff0c;进行计划外投料。移动类型仍然是261。 在科目分配页签。维护计划外投料的工单号。 在实际业务中&#xff0c;有的企业也会单独复制出一个移动类型。进行区分。 在COOIS中&#xff0c;有张表可以看出物料是计划内投料还是计划外。 …

MySQL查询执行(三):显示随机消息

假设有如下表结构&#xff1a; -- 创建表words CREATE TABLE words (id int(11) NOT NULL AUTO_INCREMENT,word varchar(64) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB;--数据生成存储过程 delimiter ;; create procedure idata() begindeclare i int;set i0;while i<…

[工具]GitHub + PicGo 搭建免费博客图床

文章目录 起因GitHub新建GitHub仓库新建token授予picgo权限 PicGOPicGO上传失败原因 起因 还是觉得个人博客记录最好还是不要money&#x1f625;&#xff0c;所以还是想白嫖&#xff0c;找到了GitHub PicGO的方式&#xff0c;记录一下。 GitHub 过程和搭建博客链接类似&…