【编程漫谈】用JAVA画多边形
一门语言只要带图形库就可以编程画图了,用JAVA画图有两种方式,一是在内存中画好然后生成图片,就可以看到画图的效果了。另一个就是在窗口界面上直接画,可以实时看到程序的运行效果。刚开始学编程的时候,我加入了一个JAVA编程的BBS,里边有些大神会带着新手学,有一次大神出一道,叫让画一个6边型。
我想这不是很难吧,JAVA的图形库比较容易,有一个Graphics类,这个类在applet或者swing的某些方法中可以得到,Graphics提供画线画点画多边形的一些方法。不过当时我没啥经验,因为没有网络,没有去查完整的Api文档,我学的东西主要来源于书本,我只知道有个画线的方法,于是就通过中学的几何知识,分别计算了6个点的位置,再用线将这个6个点连起来,于是一个6边形就画出来了。
不过,我写的程序被大神批了一通,说我这程序写得不行。第一个我用的applet,没有用swing库,可能是信息闭塞,当时我也知道有swing这玩意,只是当时的IDE太笨重,我没法安装一个jbuilder去创建UI,手写又觉得太麻烦,不像applet只要少量的代码插入到浏览器即可运行。只是applet基于awt库的,样式相较Swing的扁平效果,确实丑了一点。但我觉得,用swing还是awt,目标不是画多边形么,为什么这个成为喷点了。
另一个就是我没有用drawPolygon(int[] xPoints, int[] yPoints, int nPoints)这个方法,大神觉得我自己去画6条线,是多此一举,他觉得如果可以动态调整顶点数,我这程序就不行了。这一点我认了,确实是自己不知道这个方法,多写了几行代码,但实际上,顶点还是算出来的,我只是多了几行画线的代码,如果之前的需求有提出来,我弄个链表存储顶点,然后通过迭代把线画出来也不是多么困难的事情。
还有一点,就是我的程序仅仅画了一个图。我想应该是这个大神有点完美主义,只是画一个图,但他想要的却是一个完整可发布的应用程序,比如某兄弟,写了个6边形的程序,他上边加了几个控件,可以调节顶点数,半径长度,自适应窗口宽度等等。没办法,我学的程序基本上都是Console下边运行的,参加这个活动,我只是为了证明一下,这种基于UI的程序,我也是可以写的,但人家不认你也没办法。
后来,我一直工作到现在,也没开发过JAVA写的UI程序,如果是窗口程序,用响应更快的本地代码编写不是更好,反正Windows下边,最终都是调用GDI的接口。如果不想用C++,可以用Delphi,VB之类更简单的编程语言来实现。在我学JAVA的时候,.net 也刚刚出来。由于Windows比较普及,我也就以.net开发为主了。winform满足了开发窗口程序的大部分需求。所以用JAVA开发就比较小众了。当然也可能是见识的问题,以前的嵌入设备很多都是用JAVA的,不过那是JSME了,不是咱学习的范畴。
【编程漫谈】用JAVA画多边形的更多相关文章
- 使用Java、Matlab画多边形闭合折线图
由于写论文要将“哈密顿回路问题(TSP)”的求解中间结果表示出来,查了一下使用程序画多边形图形.现在在总结一下,这个图是“由给定节点首尾相连的”闭合多边形. 1.使用matlab作闭合多边形图 没有找 ...
- 这个中秋,我用 Java 画了一个月饼!
栈长代表微信公众号 "Java技术栈" 祝所有粉丝中秋佳节快乐! 为了用一种特殊的方式表达我的心意,去年中秋节,我写了这篇文章: 为了写中秋这篇文章,我学了 20 种编程语言! 没 ...
- 三、Android NDK编程预备之Java jni入门创建C/C++共享库
转自: http://www.eoeandroid.com/thread-264971-1-1.html 应网友回复,答应在两天前要出一篇创建C/C++共享库的,但由于清明节假期,跟朋友出去游玩,丢手 ...
- 二、Android NDK编程预备之Java jni入门Hello World
转自: http://www.eoeandroid.com/forum.php?mod=viewthread&tid=264543&fromuid=588695 昨天已经简要介绍了J ...
- 一、Android NDK编程预备之Java jni简介
转自: http://www.eoeandroid.com/thread-264384-1-1.html 游戏开发 视频教程 博客 淘帖 论坛›eoe·Android应用开发区›Androi ...
- 很值得学习的java 画图板源码
很值得学习的java 画图板源码下载地址:http://download.csdn.net/source/2371150 package minidrawpad; import java.awt.*; ...
- .net 4.0 面向对象编程漫谈基础篇读书笔记
话说笔者接触.net 已有些年头,做过的项目也有不少,有几百万的,也有几十万的,有C/S的,也有B/S的.感觉几年下来,用过的框架不少,但是.net的精髓一直没有掌握.就像学武之人懂得各种招式,但内功 ...
- 结对编程--四则运算(Java)萧英杰 夏浚杰
结对编程--四则运算(Java)萧英杰 夏浚杰 Github项目地址 功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 使用 -n 参数控制生成题目的个数(实现) 使用 -r 参数控制题目 ...
- 结对编程--四则运算(Java)梅进鹏 欧思良
结对编程--四则运算(Java)梅进鹏 欧思良 Github项目地址:https://github.com/MeiJinpen/Arithmetic 功能要求 题目:实现一个自动生成小学四则运算题目的 ...
随机推荐
- Javascript 中apply call bind
在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. 先来一个例子: functi ...
- 3.Hibernate基础配置
1.Hibernate.cfg.xml:hbm2ddl.auto 在SessionFactory创建时,自动检查数据库结构,或者将数据库schema的DDL导出到数据库 <property na ...
- Django框架——forms.ModelForm使用
使用模型创建表单 django提供了这种简便的方式,使用方法如下: 1.在项目的一个app目录中,创建forms.py文件 2.导入模块: from django import forms from ...
- 【异常】Caused by: org.apache.phoenix.coprocessor.HashJoinCacheNotFoundException:
1 详细异常 Caused by: org.apache.phoenix.coprocessor.HashJoinCacheNotFoundException: ERROR 900 (HJ01): H ...
- pytest的使用
一.python安装 1.windows(server): 双击python-3.6.7-amd64.exe执行安装流程,使用默认安装方式即可. 安装完成后查看是否安装成功: C:\Users\Adm ...
- 用cubase制作消音伴奏
- Hdu 2147 巴什博弈 PN图
P:先手必输 N:先手必胜 PN图规则:如果一个点能转换到的所有点都是N,那么此点状态为P.若能转化到一个P,即使对手面临必输状态,此点为N. 然后找规律就行 #include<bits/s ...
- C#工具:ASP.net 调用SQLserver帮助类
一.正常调用 1.创建DBHelper帮助类 2.复制以下代码到类中 using System; using System.Collections.Generic; using System.Data ...
- BZOJ1030 [JSOI2007]文本生成器[DP+AC自动机]
我学到现在才是初三学弟的水平..哭 这里相当于求长度为$m$的,字符集$\{A...Z\}$的且不包含任一模式串的文本串个数.这是一个典型的AC自动机匹配计数问题. 设$f_{i,j}$表示在AC自动 ...
- 一篇文章让您了解MQTT
转载:https://www.jianshu.com/p/de88edf8e023 什么是MQTT MQTT是基于二进制消息的发布/订阅编程模式的消息协议,最早由IBM提出的,如今已经成为OASI ...