首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么都2022年了还有人用Java写GUI?

大家好,我是小面,今天给大家分享一下如何在Java中使用几何图形。 虽然工作中很少用到,在某些场合还是有用,比如说Eclipse,IDEA 就是用java写的GUI,现在这个IDE不是还是很红么?...在本编程教程中,开发人员将学习如何使用Graphics2D类和Shape接口在Java中渲染几何2D图形。...以下部分描述了程序员如何使用Java绘制常见的几何图形。 如何在Java中画一条线 您可以使用drawLine(int x1,int y1,int x2,int y2)方法创建一条简单的直线。...此方法根据坐标(x,y)绘制具有给定宽度值和高度值的矩形,相对于容器对象: g.drawRect(100, 100, 40, 120); //矩形 上面的方法创建一个普通矩形(带尖边的矩形)。...您可以使用各种整数值来查看使用drawOval()得到的形状。值得一提的是,如果您希望创建一个圆,宽度值应等于高度。

2K30

在编程中发现数学之美——使用python和Processing绘制几何图形

画一个单个的圆相对很容易,但是画多个圆可能就变得有点儿复杂,例如,我们需要设计下面的图形: ? 为每一个小圆确定位置,需要输入许多行相似的代码。幸运的是,你不需要精确的知道每一个圆的x和y坐标。...使用translate移动坐标系 几何中的图形移动,表示在坐标系中被移动的图形上的每个点都移动相同的方向、相同的距离。或者说图形的移动,就是改变图形的位置,但是图形的形状没有任何改变。...旋转坐标系,将你想要绘制的图形,绘制在圆的边上。 绘制圆形组成的圆形 要绘制上面的图形,我们需要用到for循环,在循环中绘制圆,并且确保每个圆之间的距离是相等的。...创建t变量 让我们使用由方块组成的圆来创建动画程序,开始之前先创建t变量,然后把它初始化为0。然后插入下面的代码。...for循环重复绘制90个三角形在同一个圆上,通过旋转坐标系360/90来确保三角形之间的距离是相等的。

6.5K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 绘图魔法:用turtle库开启你的编程艺术之旅

    sides) #因为是正六边形,所以旋转60度 turtle.done() 如果我把边数无限制的增加,是不是就得到了一个圆呢?...近似看成圆,这其实是正360边形。 难道在turtle中绘制圆,只能这样绘制正多边形吗,也不是,下一个图形就圆的绘制了。 2.3 同心圆的绘制 绘制同心圆前,圆的绘制还是要知道的。...() t.circle(100) #绘制一个半径为100单位的圆 turtle.done() 接下来就同心圆的绘制,因为是同心圆,这些圆的圆心都是相同的但是半径不同。...那么只要我写一个循环让圆的半径不断地变大集就可以了,为了效果更丰富,我会让它们的颜色都不同 import turtle import random arr = ['red','green','pink'...还没有画一个填充图形呢,下面让我们开始填充图形的绘制吧 2.4 填充图形的绘制 其实填充图形,只要加两个函数就可以了,以正方形来举例吧 import turtle turtle.title('要padding

    11910

    Photoshop软件应用项目(四)

    极坐标可以把圆的东西变成直的,直的东西变成圆的 绘制发散式光芒我们用矩形工具画一个长条,填充一个颜色,按住 alt 复制,按住 shift 选中前面的两个再复制,如此重复,保证内部有 16 个这样的色块就行了...,将所有图层选中,Ctrl+t 变形将它压扁,然后隔一个删一个。...,就是由圆的变成平的,之后就可以点击确定了 三.极坐标的原理 画的矩形越多,转为极坐标后越密集,越少转为极坐标后越稀疏,条形尽量以偶数为准,如果是奇数,就会有两个色块相互重叠的现象。...,他把上方无线压缩成一个点,而下方则是无限放大扩张,左边和右边则是重合在一起,我们那个时候将右边留了一个空白区域,就是为了不让左边和右边完全重合在一起,然后 ctrl+t 就可以绘制成真正的同心圆了 四...有把图片倒过来的,也有把图片转过来的,两种都很流行,这里我就做图片倒过来的。 图片倒过来的,还可以做地球村,那种小型的应急坐标绘制出来的图片

    56520

    【实例演示】ESP8266+U8g2库,玩转OLED显示

    上篇文章:ESP8266开发-Arduino IDE安装、配置与使用,介绍了ESP8266在Arduino IDE中的基础使用方法,本篇,来继续学习OLED显示屏如何使用ESP8266来控制。...注意这里的双色,不是值一个像素点可以显示两种颜色,而是屏幕的上部1/4只能显示黄色,下部的3/4只能显示蓝色,并且黄色和蓝色之间,不是紧密靠在一起的,而是有约一个像素点的间隙。..._Arduino 想要研究U8g2源码的可以看看这里的源代码,C和C++写的。...; } 效果如下面的右图: 注意测试程序中,我定义了一个宏定义,用于延时显示每一次的画图,方便观察OLED的显示过程: #define SEND_BUFFER_DISPLAY_MS(ms)\ do...(t); } 显示效果如下面的左图: 注意,U8g2库画出的圆,因像素点的显示原理,圆的直径占用的宽度不是半径的2倍,而是2倍再加一个像素点。

    4K30

    带你轻松打开SVG动画的大门 - 腾讯ISUX

    其中remove是默认值,表示动画结束直接回到开始的地方,现在再看这个动画的样子: ? 这样看起来动画还是没有满足我的需求,我想让动画一直循环播放怎么办?这就要用到 repeatCount ?...属性的取值可以是一个数字,也可以是“indefinite”表示无限循环。现在动画变成了这样: ? 现在动画是循环了,可我还是觉得哪里别扭,第一帧和最后一帧并没有衔接起来,看起来有突兀。...写到这里,我上边的呼吸效果已经实现了,但是我现在又有了新的想法,我想放一排的圆,让一个动完,才让下一个接着动。这也就是我们编程里的“同步”概念,在svg里就是 同步动画。...和前边的例子并没有本质区别,唯一不同的地方在于from部分,from和to都是三个值,第一个值是角度,从0到360度的旋转,第二个和第三个组成一个坐标,这个坐标决定了svg围绕哪个点来进行旋转,关于这方面的知识推荐新同学了解一下...实现了旋转以后,我们再换一个更强大的动画元素,.我们可以用他来实现引导线动画,让你的图形沿着复杂的路径运动。比如我们先画一条路径 ?

    43720

    机器学习算法之kd树

    (4)通常,循环的选择坐标轴对空间切分,选择训练实例点在坐标轴上的中位数为切分点,这样得到的 kd树 是平衡的 平衡二叉树:它是一棵空树,或其左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是平衡二叉树...(1)思路引导: 根结点对应包含数据集 T 的矩形,选择 x(1) 轴,6个数据点的 x(1) 坐标中位数是6,这里选最接近的 (7,2) 点,以平面 x(1)=7 将空间分为左、右两个子矩形(子结点)...,做法是以查询点为圆心,以当前的最近距离为半径画圆,这个圆称为候选超球(candidate hypersphere),如果圆与回溯点的轴相交,则需要将轴另一边的节点都放到回溯队列里面来。...为圆心,以 dist=0.141 为半径画一个圆,并不和超平面 y=4 相交,如上图,所以不必跳到结点 (5,4) 的右子空间去搜索,因为右子空间中不可能有更近样本点了。...为半径画一个圆与超平面 y=4 相交,所以需要跳到 (5,4) 的左子空间去搜索。

    1.3K30

    G71指令的循环起点该怎么算?

    我们通过一编程实例来说明G71循环起点设置的重要性。 例:试用外圆粗车复合循环指令G71编写下图的粗加工程序。...运行该程序时,执行到N30G00X142Z2,车刀运动至循环起点A,然后后退外圆精加工余量△u(2mm)、端面精加工余量△w(2mm)至点C(X144Z4)。...从点C开始,就将进行分层切削,直至外圆留精加工余量△,端面留有余量△w结束。由设定的每刀切削深度2mm可知,刀具将在X140的位置处进行第一刀的加工。...所以确定第一刀的切削深度尤为重要,由上面的分析可以得出: X第一刀的坐标值=X循环起点的坐标值+外圆精加工余量△u(直径值)-2×每刀切削深度...由轴类零件的加工工艺可知,端面是重要的尺寸基准,加工过程中要先平端面,因此在如图1所示的工件加工过程是在端面加工之后进行的。

    1.2K20

    古老的机械钟表蕴含着神秘的数学原理

    我今天就通过编写一个显示机械钟表时间界面的程序(界面后面的发条传动装置啥的不在今天讨论的范围)来阐述其中的数学原理。 概述 机械钟表显示界面共有三个部分,外框(一般是圆)、刻度、指针。...可是画布对象没有画圆方法,那么就可以看一下有没有画椭圆的方法,毕竟圆是特殊的椭圆,画椭圆的方法确实有,但是感觉怪怪的,因为传入的参数并不是我们所想的中心点和长半轴和短半轴的长度,而是椭圆外切矩形的左上角顶点坐标和右下角顶点坐标...,也可以是外切矩形的左下角顶点坐标和右上角顶点坐标,那么我想画圆也就必须知道其外切正方形的左上角顶点坐标和右下角顶点坐标,那么这两个点的坐标能不能通过圆心坐标和半径进行转化呢?...因为刻度把一整个圆分成了 60 份,因为一圈是 2π,因此每一份就是 2π/60 = π/30,画一个我们需要圆周上的一点,这个点的坐标很容易求出来,就是(圆心横坐标+半径*sinθ, 圆心纵坐标-半径...虽然没有想的那么简单,但是没有过于复杂,秒针偏角 = 秒数*π/30,分针偏角 = 分钟数*π/30+秒数*π/30/60 = 分钟数*π/30+秒数*π/1800,时针偏角 = 小时数*π/6+分钟数

    1.1K20

    带你轻松打开SVG动画的大门

    ,我想让动画一直循环播放怎么办?...//chengrang.com/demo/svg/demo6.html 写到这里,我上边的呼吸效果已经实现了,但是我现在又有了新的想法,我想放一排的圆,让一个动完,才让下一个接着动。...OK,同步动画实现了,不过现在我要改需求……..把刚才的圆还给我,我要让他旋转。 SVG的旋转动画需要用到另一个元素,他的用法和animate并没有本质的区别,只不过属性需要换一批。...度的旋转,第二个和第三个组成一个坐标,这个坐标决定了svg围绕哪个点来进行旋转,关于这方面的知识推荐新同学了解一下SVG的坐标系相关知识。...下一次我继续和大家一起学习SVG动画一些进阶的技巧!

    77360

    【干货满满】贝塞尔曲线(Bézier curve)——什么神仙操作

    话说为什么笔者我要求虐去研究什么贝塞尔曲线?讲真,我一个数学一般般,高数及格飘过的人为什么要求虐去搞数学公式啊!研究完贝塞尔曲线,我突然想好好学习数学。真的是数学不好,学什么编程啊。...一条曲线的获得过程真不容易,也就是说在计算机中曲线的获得过程并不一帆风顺,并不像我们徒手画一条曲线那么简单。如果大家画过素描,应该知道一个圆应该怎么画。也许有人会说,圆这么简单,徒手就是一个大饼。...素描的圆并不是一蹴而就,而是不断地切割,通过线段慢慢地得出一个圆。当然这只是一个比喻,计算机中的曲线是通过无数的线段组合而成的。...然后查找2/10处的点,初次循环,直至到达PN。 是不是有点懵,一条曲线的诞生之路真艰辛。来!让我们通过实例来feel一下。我们是如何通过定义几个点来控制一条曲线的。...但是CSS的时间函数真的难解,因为我们通常是通过时间t,来得出(x,y)的坐标,从而绘制曲线,但是在CSS的时间函数中,我们使用的可不是这个方式哦。而是通过已知的x,求出y的值。

    2.4K20

    SVG画图:画一个腾讯云logo

    https://www.bejson.com/ui/svg_editor/来画几个简单的图形画个圆接下来画个简单的圆形,其中 circle 表示这是圆,cx 和 cy 属性分别定义圆心的 x 和 y...,我们画的形状都是有标签来决定的,比如圆的标签是 circle,需要指定这个标签才能画一个圆,但是我们的目标是腾讯云的 logo,这显然有些 ......C (cubic Bézier curve): 画一个立方体贝塞尔曲线。它需要三组坐标,分别代表两个控制点和终点。例如,C 10 10, 20 20, 30 30。...S (smooth cubic Bézier curve): 画一个平滑的立方体贝塞尔曲线。它假设第一个控制点是前一个 C 或 S 命令的第二个控制点的反射。它需要两组坐标:一个控制点和一个终点。...T (smooth quadratic Bézier curve): 画一个平滑的二次贝塞尔曲线。它类似于 S,但用于 Q 命令。A (elliptical arc): 画一个椭圆弧。

    27920

    使用 SVG 和 JS 创建一个由星形变心形的动画

    开始编写代码 正如在 脸部动画 中看到的,我经常使用 Pug 生成这样的形状,但在这里,因为我们生成的路径数据也需要用 JavaScript 来制作路径动画,所以全部使用 JavaScript,包括计算坐标并把数值放入...在这里,需要旋转变形的形状,因为我们想让星星的角指向上方,其次我们改变 fill 实现金星到红心的变化。 但是在这两种情况下,我们如何得到端点和控制点的坐标呢? 星形 从星形开始,先画一个正五角星。...之后,使用循环计算我们想要的点的坐标,并把它们放到坐标数组中。...所以端点到控制点的线段长为 C∙R 。 在这种情况下,控制点坐标为 1 - C 乘以 (T, Ak and Bk) 点坐标,再加上 C 乘以这些点的切线交点坐标 (Dk 和 Ek)。...确保两个形状对齐 但是如果将两个形状放到一起,不使用 fill 或者 transform,只有 stroke, 可以看到两个形状并没有对齐: See the Pen SVG star vs. heart

    4.8K51

    数控车削内孔详解

    数控编程、车铣复合、普车加工、Mastercam、行业前沿、机械视频,生产工艺、加工中心、模具、数控等前沿资讯在这里等你哦 一、内孔加工技术要求 1.内孔加工一般都要求具有较高的尺寸精度、较小的表面粗糙度和较高的几何精度...在FANUC0I数控车床系统中,G90指令为单一固定循环中的内、外圆粗车循环,G90指令加工内圆时应特别注意的是其循环起点的设置:车削内圆时G90循环起点的X坐标应小于切削内圆的直径值,否则系统就会按外圆加工的形式进行加工...在FANUC 0I数控车床系统中,G71粗车复合循环除了用于外圆加工,同样可用于加工内圆轮廓。...说明: (1)G71指令中加工内圆轮廓各参数的含义与加工外圆时相同,需注意的是内圆加工时第二个G71程序段中的精加工余量U应取负值。例: ...........N20 ....... (2)內圆加工时,G71指令循环起点X坐标值一定要小于毛坯孔的X直径。

    1.2K10

    Processing文字气泡抖动创作思路解析

    个顶点的坐标的信息,将他们存储到数组中 遍历数组,结合beginShape和endShape,使用vertex将顶点绘制出来 呃...怎么说呢?...如果是黑色字体的像素,那么画一个红色矩形方块 如果不是黑色字体的像素,啥也不干 为什么要这么判断?...,也休想逃出我的掌心” 这里用的思路,在编程中很常见,就是预见未来,改变现在。...否则该位置则可以通过,玩家的位置 y -= speed; } 所以思路就是: 预见未来:按照我的操作,或者我的速度,在下一次帧计算中,我可以到达那个位置吗?...改变现在:如果可以,我就过去,如果不可以,我就不动,或者反向运动等。 同样的编程思维可以用在这里,气泡的运动时时刻刻都在问,按照我现在的速度,下一帧我还在字体像素的范围中吗?

    1.3K10

    《前端图形学实战》几何学在前端边界计算中的应用和原理分析

    骨骼动画实现原理 从零封装一个图形库 等等, 每一个实战案例我都同步到 阿几里德编程实践 代码仓库中, 有兴趣的朋友可以参考学习。...用 css 或者 css背景渐变 都可以画出来, 但是通过上面的方式很难对三角形边界进行计算了, 我们需要知道三角形的三个顶点坐标, 所以这里我讲给大家介绍一种三角函数的方式, 来画任意的三角形。...3.1 从画一个线段开始 image.png 我们先来考虑一个简单的问题: 已知两个点的坐标 A(x0, y0) 和 B(x1, y1), 如何用 dom 画一个线段AB。...我们只需要用根据三角形的3个顶点坐标画出首尾相连的3条线段即可。 3.2 用 HTMLDiv 画一个三角形 我们只需要对上面的生成线段的函数稍加改造, 就可以实现生成三角形数据元的函数。...image.png 在上面两个图形的边界计算中我们用特殊方法来计算出了任意一个点是否在其内部, 但是对于三角形, 以上方法可能都不适用了, 那我们怎么来实现它呢?

    1.2K20

    Android 自定义View 画圆(奥运五环)

    用GIF当然会增加你的APP的体积,而自定义View难度也不小,于是很多人都会选择用GIF先解决这个问题,后面再去自己自定义,然后就没有然后了(PS:曾经我也是这样的一个人,但是,人是会变的,小老弟),...下面一一揭晓,Android中通过 Paint 和 Canvas 来画画,啥玩意儿?我怎么都没有听说过呢?触及到我的知识盲区!开始怀疑人生,我是谁?我在哪?中午吃什么?...,paint);//完成 } 我相信注释得已经很清楚了,这个时候你运行一下,就会看到一个黑色的空心圆 然后再修改一下代码,画一个实心圆 再运行一下 **canvas.drawCircle...(150,150,100,paint);**表示圆心在横坐标和纵坐标都为150的位置,以半径为100画一个圆,可以把这一行代码复制四次,然后改变半径的大小,为了看到效果,还是画空心圆 然后运行一下...,只改变横坐标试一下 运行结果如下图 接下来运用这个思路来画一个奥运五环吧 运行效果如下图所示 除了没有颜色还是比较像的。

    1.4K41

    《前端图形学实战》几何学在前端边界计算中的应用和原理分析

    骨骼动画实现原理 从零封装一个图形库 等等, 每一个实战案例我都同步到 阿几里德编程实践 代码仓库中, 有兴趣的朋友可以参考学习。...用 css 或者 css背景渐变 都可以画出来, 但是通过上面的方式很难对三角形边界进行计算了, 我们需要知道三角形的三个顶点坐标, 所以这里我讲给大家介绍一种三角函数的方式, 来画任意的三角形。...3.1 从画一个线段开始 image.png 我们先来考虑一个简单的问题: 已知两个点的坐标 A(x0, y0) 和 B(x1, y1), 如何用 dom 画一个线段AB。...我们只需要用根据三角形的3个顶点坐标画出首尾相连的3条线段即可。 3.2 用 HTMLDiv 画一个三角形 我们只需要对上面的生成线段的函数稍加改造, 就可以实现生成三角形数据元的函数。...image.png 在上面两个图形的边界计算中我们用特殊方法来计算出了任意一个点是否在其内部, 但是对于三角形, 以上方法可能都不适用了, 那我们怎么来实现它呢?

    1.3K10

    又来新需求了,急,Android怎么实现时间线效果?

    预警:本文非常啰嗦,而且没有干货(害怕.jpg) 分析 功能分析 页面的大致功能: 该页面是个展示了某种流程的列表,每个列表项有不同的状态(已完成、进行中、未开始) 在列表的一侧有个类似时间线的view...首先发现,这个时间线view是由两个大部分组成的,分别是:圆、线 然后我们自然可以注意到,在一个项的时间线中,又出现了两种颜色:圆上面的线(以下简称为上线)是绿色,圆本身和圆下面的线(以下简称为下线)又是红色...第一版 第一个版本,小庄打算只实现画出圆和线的形状,没有状态也没有颜色,主要为了验证自己的想法是否可行,具体的实现需要做以下几个内容: 准备定义两个重要属性,它们将会参与计算位置和绘制内容 radius...好了 结合以上两点,我们可以定义一个函数类型的属性var color: (item: T) -> Int,实现这个属性就可以让使用者通过数据状态设置想要的颜色了 函数类型是kotlin(或者说函数式编程...第二版的功能也圆满实现! 后话 后来小庄又根据UI一顿修修改改,很快就完成了这个需求~但是小庄是一个有追求的程序员,他开始思考起了这个代码的扩展性和通用性如何。不想不要紧,一想发现根本没有鸭!

    48300
    领券