仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1510|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网站制作之MIDP1.0中完成三角形的添补

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:50:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
因为开辟的顺应性必要,J2ME程序员在良多时分不克不及利用MIDP2.0举行开辟。可是MIDP1.0的功效和2.0相差良多,很多有用的函数都没有供应。这必要程序员本人完成。本文先容了一个Canvas中的有用的函数,用来在Canvas中添补三角形地区。

importjavax.microedition.lcdui.Canvas;importjavax.microedition.lcdui.Command;importjavax.microedition.lcdui.CommandListener;importjavax.microedition.lcdui.Displayable;importjavax.microedition.lcdui.Graphics;

publicclassTriangleextendsCanvasimplementsCommandListener{privateGraphicsg;publicTriangle(){}

protectedvoidpaint(Graphicsarg0){g=arg0;g.setColor(0xffffff);g.fillRect(0,0,this.getWidth(),this.getHeight());g.setColor(0x000000);fillTriangle(5,40,100,10,200,200);}

/***前提:点(x0,y0),(x1,y1),(x2,y2)构成三角形。*办理举措:设直线L过点(x1,y1),(x2,y2)两个点*(x3,y3)是直线L上的点,从(x0,y0)画线到(x3,y3)。*只需我们取到直线L下面的一切显现的象素点,就能够完成三角形的添补。**成绩:直线L有两种形态,竖直和倾斜(包含程度),竖直形态,我们很简单办理。*倾斜形态,我们必要求得直线的斜率,这看似要利用浮点数,可是我们可使用整数办理。*由于当直线(线段)上的两个端点(x1,y1),(x2,y2)的横坐标x1!=x2时*即(x1-x2的相对值年夜于即是1),*纵坐标的差值y2-y1最年夜是屏幕的高。以是(y1-y2)/(x1-x2)的值最年夜不凌驾屏幕的高度值。*这个值和Integer.Max_Value相差良多。如许我们能够把这个斜率缩小1000倍以后利用。*这是能够斜率的精度的请求的。*/privatevoidfillTriangle(intx0,inty0,intx1,inty1,intx2,inty2){inttemp,x3,y3;if(y1>y2){//包管y2>y1,便于盘算,这只是互换两个点的reference,不影响了局。temp=x1;x1=x2;x2=temp;temp=y1;y1=y2;y2=temp;}if(x1==x2){x3=x1;y3=y1+1;do{g.drawLine(x0,y0,x3,y3);y3++;}while(y3<y2);}else{if(y1==y2){if(x1>x2){temp=x1;x1=x2;x2=temp;temp=y1;y1=y2;y2=temp;}x3=x1;y3=y1;do{g.drawLine(x0,y0,x3,y3);x3++;}while(x3<x2);}else{intk=(y1-y2)*1000/(x1-x2);//斜率,缩小了1000倍System.out.println("kis"+k);y3=y1+1;x3=(y3-y1)*1000/k+x1;do{g.drawLine(x0,y0,x3,y3);y3++;x3=(y3-y1)*1000/k+x1;}while(y3<y2);}}}publicvoidcommandAction(Commandarg0,Displayablearg1){

}

}

这份代码没有举行三个点是不是能够构成三角形的校验。因为完成的机制是从一个点到对应的线上的点画线,以是线的端点不要利用钝角的极点,由于如许大概呈现添补不满的情形。固然,这能够在函数内办理,可是,我一时还没有找到符合的办法。

代码经由测试了。可是,我的测试大概不完美,利用之前你再测试一下。代码的效力不必忧虑,经由查验,绘图利用也许0.016秒。利用轮回100次,失掉的了局。

这个添补三角形的办法固然在思绪上是准确的,可是另有良多不敷的地方,但愿人人能够修正好,然后把修正以后的函数告知我。我也小小的“开源”一下,呵呵。

MSN:cuilichen@hotmail.com



net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。
变相怪杰 该用户已被删除
沙发
发表于 2015-1-30 20:43:22 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
飘灵儿 该用户已被删除
板凳
发表于 2015-2-1 16:11:04 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
若相依 该用户已被删除
地板
发表于 2015-2-5 15:16:56 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-6 19:35:35 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
蒙在股里 该用户已被删除
6#
发表于 2015-2-8 12:26:28 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
小妖女 该用户已被删除
7#
发表于 2015-2-25 12:55:29 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
兰色精灵 该用户已被删除
8#
发表于 2015-3-7 20:51:35 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
小魔女 该用户已被删除
9#
发表于 2015-3-11 00:31:46 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-11 21:45:12 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
不帅 该用户已被删除
11#
发表于 2015-3-15 22:28:44 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
海妖 该用户已被删除
12#
发表于 2015-3-19 06:09:35 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
因胸联盟 该用户已被删除
13#
发表于 2015-3-21 13:40:15 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
飘飘悠悠 该用户已被删除
14#
发表于 2015-3-29 11:52:39 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
乐观 该用户已被删除
15#
发表于 2015-4-6 05:10:01 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
简单生活 该用户已被删除
16#
发表于 2015-4-6 18:10:18 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
分手快乐 该用户已被删除
17#
发表于 2015-4-26 12:10:59 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再见西城 该用户已被删除
18#
发表于 2015-5-12 09:32:01 | 只看该作者
是一种为 Internet发展的计算机语言
第二个灵魂 该用户已被删除
19#
发表于 2015-6-15 08:21:47 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 04:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表