【编程漫谈】用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 功能要求 题目:实现一个自动生成小学四则运算题目的 ...
随机推荐
- 解决Eclipse中springBoot中文乱码问题
除了常见的application.properties文件中设置#设置spring-boot 编码格式banner.charset=UTF-8server.tomcat.uri-encoding=UT ...
- 上传图片,语音,和富文本(webuploader,dropzone, froala)
首先是上传图片,使用的百度webuploader 自己修改后可以实例化多个uploader对象: HTML: <!DOCTYPE html> <html xmlns="ht ...
- JVM学习(三):垃圾回收算法
局部性原理和分代回收思想 大学学习操作系统或者计算机组成原理的时候都提到一个重要概念,叫局部性原理. 局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小 ...
- python3中OS模块
os模块 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: import os:#导入os模块 help(os ...
- Delphi MSComm控件属性
- linux 进程优先级 调度 nice pri
转:http://www.linuxidc.com/Linux/2016-05/131244.htm 深入 Linux 的进程优先级 [日期:2016-05-11] 来源:liwei.life 作者 ...
- servlel出现404问题★ 出现不自动映射 设置XML的问题时候
★ 出现不自动映射 设置XML的问题时候 可能是 web.xml配置可能是复制的 错误原因来自于name的匹配 <display-name>webdemo1</display-na ...
- 6.高性能NIO框架netty
1.Netty简介: Netty是基于Java NIO的网络应用框架 Netty是一个NIO client-server(客户端服务器)框架,使用Netty可以快速开发网络应用,例如服务器和客户端协议 ...
- struts2使用注解的时候遇到的问题
问题描述: 一切配置和注解都正确,但是无法访问action中的方法 解决问题: 之前将action层的包名命名成了web,改成action就对了 原因: struts2 ...
- 深入理解python协程
目录 概述 生成器变形 yield/send yield send yield from asyncio.coroutine和yield from async和await 概述 由于 cpu和 磁盘读 ...