【Processing】简单了解一下,能看懂代码即可

Processing是一个基于Java的编程环境,专注于图形应用,如算法动画和数据可视化。它的语法简洁,适合初学者。文章介绍了从打开空白代码到绘制小球和实现交互式椭圆的示例,强调了setup()和draw()这两个关键函数的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Processing 简介

Processing 是一个为开发面向图形的应用(visually oriented application)而生的简单易用的编程语言和编程环境。Processing 的创造者将它看作是一个代码素描本。它尤其擅长算法动画和即时交互反馈,所以近年来在交互动画,复杂数据可视化,视觉设计,原型开发和制作方向越发流行,大家都喜欢这个可爱贴心,简洁好用的编程工具。

Processing 基于 Java,其语法规则和 Java 是一致的,但是即使你熟悉 Java 编程,也请暂时忘记这一点,因为 Processing 不同于 Java,它更为简单,并且已经演化出了它自己的一套"工作习惯"。

2. 看代码

1. 空白代码

刚打开的工程代码区是空白的。不过默认情况下,Processing 程序的运行结果是一个 100*100 的灰色空白窗口。

点击运行键,你的屏幕上将出现运行结果:

在这里插入图片描述

2. 一个小球

接下来在代码编辑区输入下列代码:

ellipse(50, 50, 80, 80);

将会得到如下图所示的一个椭圆。

在这里插入图片描述

3. 类似于 HelloWorld 的代码

void setup() 
{
  size(480, 320);
}

void draw() 
{
  if (mousePressed) 
  {
    fill(0);
  }
  else
  {
    fill(255);
  }
  ellipse(mouseX, mouseY, 80, 80);
}

效果如下:

在这里插入图片描述

在这个程序中我们重写了两个函数:setup()draw()

setup() 是在程序开始时调用的函数,只执行一次;而 draw()setup() 后被调用,并且将循环地、不停地被调用。

这里的 setup()draw() 函数类似于 MFC 的回调函数,也就是说,在特定的条件下被系统调用的函数,如,setup() 是在程序启动时被调用的,draw()setup() 以后按照每秒多少帧被系统调用的(类似的函数还有 mousePressed() - 在鼠标按下时被调用,keyPressed() - 在键盘某个键按下时会被调用,等等)。然而 setup()draw() 是所有函数中最关键的两个函数。

Ref.

  1. 1 Processing入门简介
  2. Processing
你刚才说:好的,我来详细解释一下。 在原始的实现方式中,ImageProcessor类的process方法调用了Image类的getSize方法,用于获取图像的大小。如果我们现在需要修改Image类的getSize方法的实现,比如改为从文件中读取图像的大小,就必须同时修改ImageProcessor类的process方法,使其能够正确地处理新的getSize方法的返回值。 具体来说,如果我们修改了Image类的getSize方法的实现,使其从文件中读取图像的大小,那么这个方法的返回值就会发生变化。假设原来的返回值是(100, 100),现在变成了(200, 200)。如果我们不修改ImageProcessor类的process方法,那么在调用getSize方法时,就会得到一个不正确的返回值。这会导致ImageProcessor类的process方法无法正确处理图像的大小,从而影响整个系统的功能。 因此,如果我们需要修改Image类的getSize方法的实现,就必须同时修改ImageProcessor类的process方法,使其能够正确地处理新的getSize方法的返回值。这就会导致类之间的耦合度增加,降低代码的可维护性和可扩展性。 使用依赖注入的方式,将Image类的实例作为参数传递给ImageProcessor类的构造函数,可以避免上述问题。因为在使用依赖注入的方式时,ImageProcessor类只需要关心Image类的接口,而不需要关心其具体实现。如果我们需要修改Image类的getSize方法的实现,只需要修改Image类本身即可,不会对ImageProcessor类的功能造成影响。这样,就可以降低类之间的耦合度,提高代码的可维护性和可扩展性。我没看懂,请用代码详细说明
06-08
好的,我可以用 Python 代码来说明。 首先,我们定义一个 Image 类,该类包含一个 getSize 方法,用于获取图像的大小。在这个示例中,getSize 方法只是返回一个固定的大小 (100, 100)。 ```python class Image: def getSize(self): return (100, 100) ``` 然后,我们定义一个 ImageProcessor 类,该类包含一个 process 方法,用于处理图像。在这个示例中,process 方法调用了 Image 类的 getSize 方法,并打印出图像的大小。 ```python class ImageProcessor: def __init__(self, image): self.image = image def process(self): size = self.image.getSize() print("Processing image with size: ", size) ``` 使用依赖注入的方式,我们可以将 Image 类的实例作为 ImageProcessor 类的构造函数参数传递。这样,当我们需要修改 Image 类的 getSize 方法的实现时,只需要修改 Image 类本身即可,不会对 ImageProcessor 类的功能造成影响。 例如,我们现在需要修改 Image 类的 getSize 方法的实现,使其从文件中读取图像的大小。我们可以将 getSize 方法修改如下: ```python class Image: def __init__(self, path): self.path = path def getSize(self): # Load image from file and get size width, height = get_image_size(self.path) return (width, height) ``` 其中,get_image_size 方法是用来从文件中读取图像大小的。这个方法的具体实现并不重要,我们只需要知道它能够返回图像的宽度和高度即可。 现在,我们可以使用依赖注入的方式来创建 ImageProcessor 类的实例。我们首先创建一个 Image 类的实例,然后将其作为 ImageProcessor 类的构造函数参数传递。 ```python image = Image("path/to/image.jpg") processor = ImageProcessor(image) processor.process() ``` 这样,当我们调用 ImageProcessor 类的 process 方法时,它就会自动使用我们传递的 Image 类的实例,并调用其 getSize 方法来获取图像的大小。由于 ImageProcessor 类不关心 Image 类的具体实现,我们可以随意修改 Image 类的 getSize 方法的实现,而不会对 ImageProcessor 类的功能造成影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值