Java ART17 Mar 2025 | 6 分钟阅读 在日常对话中,“艺术”通常指装裱好的画;在这种语境下,有些人认为艺术只属于知识分子或文艺青年。然而,艺术是为所有人准备的,任何想要体验它的人都可以接触,而且它常常比我们意识到的存在于更多的地方。可能是我们喜欢的歌曲,我们看的电影,剧院里的诗歌,甚至是奶奶做的被子;这些以及更多都属于艺术。 艺术已经存在了数千年,并且随着时代的变迁,它以多种不同的方式演变。 创作艺术的原因因人而异,取决于许多因素。定义艺术是相当棘手的,并且在历史上一直存在争议;没有一个被普遍接受的定义。然而,许多人认为艺术是任何能触动我们情感的事物。 因此,三个人可能会体验同一件艺术品,并产生截然不同的反应。 一个人可能认为这是他们见过的最美丽的东西。另一个人可能讨厌它,第三个人可能没什么感觉,而他们 none of them 都是错的。 每个人都有权表达自己的偏好和感受。说到艺术,我们喜欢自己喜欢的歌曲的方式,可能与别人喜欢他们著名的雕塑的方式相同,即使我们可能不喜欢。考虑一下那个人为什么如此喜欢它可能会很有价值,我们可能会从他们身上学到一些东西,也可能从我们自己身上学到一些东西。 “艺术”一词多年来一直被用作一个标签。许多人试图对艺术进行分类,而这与艺术本身无关。它关乎我们与它的个人体验以及我们从中获得的意义。每个人对艺术的反应都不同,并且有成长的潜力。它使我们能够以很少其他事物能做到的方式讲述故事、记录历史并触及我们的情感。 我们也可以用 2D 图形来绘制字符串。 用字符串绘制 2D 图形借助 Graphics2D 类,可以将字符串绘制成图像。这通过调用 drawString() 方法来实现。 Graphics2D 是一个抽象类,我们可以通过扩展它并实现与 Graphics 类相关的各种方法来创建实例。 我们知道这是一项繁琐的任务,通常是通过在 Java 中创建一个 BufferedImage 实例来完成,然后从中检索底层的 Graphics 实例。 通过用 ASCII 字符替换图像矩阵索引当我们绘制字符串时,Graphics2D 类使用一种小的类似矩阵的技术,其中区域显示设计的字符串并被赋予特定值,而其他区域提供零值。 要替换雕刻区域,提供所需的 ASCII 字符,我们需要将雕刻区域的值作为一个数据点进行检查,而不考虑红、绿、蓝的颜色值。 当需要将 RGB 颜色表示为整数时,我们将图像类型设置为整数模式。 主要思想是用我们想要的艺术字符替换图像矩阵非零索引处的值。 矩阵索引表示分配给单个空格字符的零值。零值在等效整数模式下为 -16777216。 ASCII 中的艺术生成器让我们考虑一个必须制作字符串“JAVA”的 ASCII 艺术的场景。 首先,我们需要创建一个具有所需宽度和高度的空白图像,并将图像类型设置为整数模式,如上所述。 在使用 Java 中的高级 2D 图形时,我们将 Graphics 对象转换为 Graphics2D 实例。完成所有这些之后,在调用带有字符串“JAVA”的 drawString() 方法之前,我们设置所需的参数。 上面的代码中,13 和 26 分别代表打印应开始的图像点处的 x 和 y 坐标。 我们还拥有一个 2D 图形和一个底层矩阵,其中包含两种被区分的值:非零索引和零索引。 现在,我们将进入二维数组或矩阵,并将所有值替换为 ASCII 字符“*”,用冒号(:)代替。 让我们编写一个程序来实现上述讨论的模式。 输出 ![]() 上面的程序输出会显示为星号(*)块。如果我们想用整数值 -1664578 替换“*”,其余的都用“:”(冒号)表示。在这种情况下,我们编写一个程序来替换“星号”为一个整数值。 程序 在输出中,我们获得了与字符串对应的 ASCII 艺术和一个反转的雕刻。 什么是 ASCII?ASCII 是“American Standard Code for Information Interchange”(美国信息交换标准代码)的缩写。它们是字母数字字符,由七位组成。共有 128 个字符;问题是它们只用于表示某些字符。 我们为什么要绘制 ASCII 艺术?ASCII 艺术具有复杂的图案,而逼真的图形需要大量的技巧。它可以专注于算法。 开发策略有一些关于管理复杂性的建议。
伪代码这是算法的英文描述。 例如,绘制 12 宽、7 高的星号框。 伪代码算法线 ( #, 16=, #) 上半部分
下半部分(上半部分倒置) 线 #, 16=, 来自伪代码的方法输出 ![]() 缩放镜像让我们修改我们的镜像程序,使其能够缩放。当前的镜像左边是 4,右边是 3。 我们想通过只在一个地方更改代码来构建代码以缩放图形。 ![]() 变量的局限性想法:创建一个变量来表示大小。因此,在方法中使用变量的值。 问题:一个方法中的变量在其他方法中不可见。 范围变量存在于程序的一部分。从声明到 {} 大括号结束 在“for”循环中声明的变量仅在该循环中存在。 在方法中声明的变量仅在该方法中存在。 作用域的影响没有重叠作用域的变量可以具有相同的名称。 变量不能被声明两次或在其作用域外使用。 类常量一个固定值对整个程序可见,并且只能在声明时设置,不能重新赋值。 语法 名称通常是 ALL_UPPER_CASE ![]() 示例 public static final int DAYS_IN_WEEK = 7; public static final double INTEREST_RATE = 3.5; public static final int SSN = 658234569; 结论本文介绍了如何使用内置的 2D 图形库在 Java 中创建 ASCII 艺术。我们还展示了通过将星号替换为整数来显示字符串。 下一主题Java 中的确定赋值 |
在 Java 中,当组织包含重复元素的集合以及借助 Multiset 统计元素频率时。Java SE 在其标准库中不支持 Multiset 作为接口,但它可以由第三方框架(如 Google...)支持。
5 分钟阅读
XOR(异或)运算是一种按位运算,它比较整数的对应位,并返回一个新的整数,其中每个位仅当输入整数中的一个对应位被设置时才被设置。在此上下文中,我们将...
阅读 4 分钟
在 Java 中,箭头运算符用于创建 lambda 表达式。它随着 Java 8 中 lambda 表达式功能的添加而被引入。它将表达式主体与参数分开。Lambda 表达式通过消除...使函数式编程成为可能。
阅读 8 分钟
给定一个字符串。我们的任务是通过插入字符将该字符串转换为回文串。字符只能插入到输入字符串的最左侧。在输出中,我们需要提及字符的总数...
阅读 8 分钟
Java 中的计数器变量是一种特殊的变量,用于循环计数重复次数或知道我们处于哪次重复。简单来说,计数器变量是跟踪...的变量。
阅读 4 分钟
在本节中,我们将学习什么是幸运数,并创建 Java 程序来检查给定的数字是否是幸运数。幸运数程序经常在 Java 编码测试和学术中出现。幸运数 自然数的序列或...
阅读 3 分钟
Sylvester 序列是一个数学序列,其中每一项都源自所有之前项的乘积加一。它以 2 开始,后续项迅速增长。该序列在数论和组合学中有应用。在 Java 中实现它涉及递归或迭代…
阅读 8 分钟
Java 中的数据处理和格式化可以通过 SimpleDateFormat 和 Gregorian Calendar 等类来完成。日期和时间字段操作方法在 Gregorian Calendar 类中可用,该类是 Java.util 包的组成部分。但是,由于它需要生成日历实例和修改...
阅读 2 分钟
OOPS MCQ 1) 以下哪种语言是作为第一种纯粹面向对象的语言开发的? SmallTalk C++ Kotlin Java 显示答案 工作区 答案:a. SmallTalk 说明:这种编程语言是作为第一种纯粹的 OOPS(面向对象)语言发明的。该语言由 Alan Kay 在 20 世纪 70 年代初设计。 2) 谁开发了面向对象编程? Adele...
阅读 13 分钟
在本节中,我们将学习什么是 Adam 数,并创建 Java 程序来检查给定的数是否为 Adam 数。Adam 数程序经常在 Java 编码测试和学术界中被问到。Adam 数:如果一个数满足...,则称该数为 Adam 数。
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India