「java图形计算难点」java图像处理

博主:adminadmin 2023-01-07 09:00:08 1018

本篇文章给大家谈谈java图形计算难点,以及java图像处理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java的难点在哪?

Java是编程语言中比较难学的一门语言,它的难度并不低,相对比于C语言、Python语言来说,他们的学习难度要比Java轻松很多;

Java的学习中最难得就是,各种各样的框架,框架的使用、整合、最后项目;

学习Java刚开始我们要学习各种各样的基础知识:

Java的基础:

数据结构和算法、集合(容器)、IO流、多线程、封装、多态、继承等等

数据库的基础:

MySQL基础、MySQL 增删改查语句、数据库对象、JDBC、反射和注解等

Java web基础知识:

前端的基础:

JS(JavaScript)、jQuery、HEML、CSS等

当我们学完这些基础知识以后我们将迈入Java中的高级阶段 JavaEE

这个阶段中会需要我们将所有的,知识总结在一起揉吧揉吧和一块,“难就难在这里”以我对学习Java来看就是这种想象,起个名词“学英语”;

就是那种 “ABCDEFG···”我都会,但是合在一起的话我们就变得,不能理解甚至无从下手。原本很简单的基础知识,什么 封装多态简单、什么 HTML/CSS简单、什么数据库简单!!但是他们集合在一起会导致我们不知道从哪里开始

         

         

一脸懵逼?

学习Java不止要靠毅力、脑力、思维力,还要靠人际交流问题需要靠你的花言巧语找大牛为你指点江山,走上成功之路!

那么有关Java学习的难度和线路我整理啦一些有用的知识,为你指点江山!

JAVA的难题,急!!!

public class Circle {

private double x;

private double y;

private double r;

public double getX() {

return x;

}

public void setX(double x) {

this.x = x;

}

public double getY() {

return y;

}

public void setY(double y) {

this.y = y;

}

public double getR() {

return r;

}

public void setR(double r) {

this.r = r;

}

public double area()

{

return 3.14159265*r*r;

}

public double Perimeter()

{

return 2*3.14159265*r;

}

}

public class Cylinder extends Circle {

private double h;

public double getH() {

return h;

}

public void setH(double h) {

this.h = h;

}

public double getX() {

return super.getX();

}

public void setX(double x) {

super.setX(x);

}

public double getY() {

return super.getY();

}

public void setY(double y) {

super.setY(y);

}

public double getR() {

return super.getR();

}

public void setR(double r) {

super.setR(r);

}

public double area()

{

return super.area()*2+super.Perimeter()*getH();

}

public double volume()

{

return super.area()*getH();

}

}

显示自己做

如何用java计算三角形、矩形、圆的面积?

//图形类作父类

public class Diagram {

//计算面积

public double area(){return 0;}

}

//圆类:继承图形类

public class Crile extends Diagram{

private double r;

public Crile(double r){

this.r=r;

}

//重写area方法

public double area(){

double r=this.r;

return r*r*3.14;

}

}

//三角形类:继承图形类

public class Triangle extends Diagram{

private double high; //三角形的高

private double bottom; //三角形的底

public Triangle(double h,double b){

this.high=h;

this.bottom=b;

}

public double area(){

double h=this.high;

double b=this.bottom;

return h*b/2;

}

}

//测试

public class test {

public static void main(String[] args) {

System.out.println("请选择图形的类型:(1)三角形(2)圆");

Scanner scanner=new Scanner(System.in);

int i=scanner.nextInt();

if(i==1){

System.out.println("你选择的是三角形!请输入三角形高长(回车结束):");

double high=scanner.nextLong();

System.out.println("请输入三角形底长(回车结束):");

double bottom=scanner.nextLong();

//这里体现动态,如果选择的图形是三角形,那么创建三角形类

//调用的时候就是调用的三角形的方法

Diagram diagram=new Triangle(high, bottom);

System.out.println("三角形的面积为:"+diagram.area());

}

if(i==2){

System.out.println("你选择的是圆形!请输入圆的半径(回车结束):");

double r=scanner.nextLong();

Diagram diagram=new Crile(r);

System.out.println("三角形的面积为:"+diagram.area());

}

}

}

其他的一样了,纯手工 望采纳!

用Java设计网络版俄罗斯方块会遇到哪些难点?

(Java ) . 1.1 开发一个俄罗斯方块游戏。游戏者移动和旋转窗口内落下的方块,方块在一行堆满后就可以消掉,并得到相应的分数;如果方块堆积至窗口顶端,即告负。 1.2 在游戏程序中,我们可以将它看成3 个对象,分别是程序窗体主类对象、方块数据管理对象、控制游戏自动下落的定时器线程对象、三个背景音乐对象。 窗体主类对象: 方块数据管理对象: 控制游戏自动下落的定时器线程对象: 三个背景音乐对象: 1.3 开发工具:Sun NetBeans IDE 6.1 NetBeans IDE 是一个为软件开发者提供的自由、开源的集成开发环境。您可以从中获得您所需要的所有工具,用 Java、C/C++ 甚至是 Ruby 来创建专业的桌面应用程序、企业应用程序、web 和移动应用程序。此 IDE 可以在多种平台上运行,包括 Windows、Linux、Mac OS X 以及 Solaris;它易于安装且非常方便使用。6.0 发行版包含了重要的增强功能和新特性,包括完全重写的编辑器基础结构、对扩展语言的支持、新的生产率特性,以及一个能让您根据实际需求安装并配置 IDE 的简化安装过程。 . 2.1 游戏数据与界面显示相分离,用游戏结构数据描述游戏的状态,玩家操作或游戏自行走一步,程序中都通过修改游戏数据来体现,即每走一步,程序会修改当前的游戏数据,判断游戏是否结束了,也是通过对游戏数据的分析来作出结论。游戏界面是根据当时游戏数据来绘制的,当数据改变时,要清除原图形并重绘。总之,游戏的逻辑设计是针对游戏数据,而不是游戏界面。界面只是间接地向玩家显示结果。因此,在设计函数时,大致分二类:与玩家操作事件有关的数据处理函数,与界面效果有关的图形绘制函数。游戏运行过程由窗体监听到的键盘事件控制 主要流程图如下: 制造新的方块 方 向键 的控 制与方法 IsCanChangeTo() Anthem类 游戏背景音乐当游戏开始时启动 Class RussionGame clearblock() makeblock() moveright() movedown() moveleft() turnleft() turnright() Anthem2 类 按键的声音当触发方向键的方法时响应 formKeyPressed() 当游戏结束后启动另一首音乐 定义一个线程类,在后台自动地按游戏速度,移动方块。 CheckAndCutLine() IsOver() Anthem3 类 检查某一行是否为全填充,如是,消掉并返回1 IsHitBottom() 判断当前方块是否已触底,并处理 TimerRuner 游戏数据管理对象:主要管理着两方面数据:方块的坐标数据和游戏空间数据。用成员数组变量描述游戏空间状态,根据游戏空间状态判断游戏是否结束。用它的成员变量保存方块的形状数据及坐标数据,定义当方块走动方块数据变化的处理方法。此外,还把各种游戏属性数据作为其成员变量。 控制游戏自动下落的定时器线程对象:是一个线程类派生对象,独立运行,每隔一段时间控制方块下落下格。 窗体界面主类对象:负责绘制游戏图象、包含游戏设置的各种控件(如:设置速度的文本框、显示得分的标签、开始及暂停按钮),负责游戏的各种属性数据的读入及显示输出,最重要的是:它还是一个键盘事件处理类,监听玩家的键盘操作,处理键盘事件,在键盘事件处理函数中调用游戏数据管理对象的方法,控制游戏的运行。我们还把游戏数据管理对象、控制游戏自动下落的定时器线程对象作为它的成员变量。 往面板中加入需要的控件(2 个 Jlable,2 个 JcomboBox,4 个 Jbottun),并布置好它们的位置,并重命名控件对象变量的名称,如上图: 2.3 1. 首先对于方块的构造分析,可以用一个三维数组来表示,方块总共有四种基本形,其它形状可由这四种基本形通过旋转得到,如下图: class RussionBlockGame { final int sp_WIDTH = 20; // final int sp_HIGHT = 20; // final int boxtypes[4][4][2]={ {{-1,0},{0,0},{1,0},{2,0}}, {{-1,0},{0,0},{1,0},{1,-1}}, {{-1,0},{0,0},{1,0},{0,-1}}, {{-1,0},{0,0},{1,0},{-1,-1}} };/* */ int box[4][2]; /* */ int cx, cy; /* */ int type; /* ( 0,1,2,3)*/ int block_box[][]=new int[4][2]; /* */ int block_cx, block_cy; /* */ int block_type; /* ( 0,1,2,3)*/ int gamespace[][] = new int[sp_HIGHT][sp_WIDTH] ; void makeblock()// { block_type = (int)(Math.random()*100)%4;//产生一个1-4 的随机数 for(int i=0; i4;i++) block_box[i] = types[block_type][i]; block_cx=sp_WIDTH/2; block_cy=0; } HIGHT WIDTH (cx,cy)= (11,4) (WIDTH-1,HIGHT-1) 游戏空间可以看成由sp_WIDTH × sp_HIGHT 个正方形小格子构成,每格子都有一个相对于左上角的坐标。可以用一个sp_WIDTH × sp_HIGHT 的二维数组表示游戏空间。如下: int gamespace[sp_WIDTH][sp_HIGHT]; 某格子对应的数组元素的值为1,表示此格子已被方块填充,为0 表示未被填充。 在游戏空间中,被方块填充了的格子为深灰色,未被填充的格子为白色(底色),灰色格子触及空间顶部时,游戏结束。即gamespace[0](二维数组第一排)中有元素的值为1 时,游戏结束。下面是判断游戏是否结束的程序: boolean IsGameOver() { boolean flag=false; for(int i=0; i=sp_WIDTH || y=sp_HIGHT|| (y0 gamespace[y][x]==1)) { IsCan = false; break;} } return IsCan; } 4. , 判断方块是否已落到底,就是判断方块中每个小正方形格的正下方位置是否已被填充或出下界。 如已到底,把方块所在的位置(格子)填充(对应 gamespace 1),还要查看是否有某行已被全填充,把被全填充的行消掉,并给用户加分,程序片段如下: boolean IsHitBottom( ) / { boolean flag =false ; int i, x, y; for (i=0; i4; i++) { x= block_cx + block_box[i][0]; y= block_cy + block_box[i][1] + 1 ; if ( y=sp_HIGHT|| gamespace[y][x]==1) { flag = true; break; } } if( flag ) { for (i=0; i4; i++) { x= block_cx + block_box[i][0] ; y= block_cy + block_box[i][1] ; if(y=0) { gamespace[y][x]=1;} } for (i=0; i4; i++) { y= block_cy + block_box[i][1] ; while(y=0 CheckAndCutLine(y)) m_score += 100; } isplaying = ! IsGameOver(); } return flag; } 开始音乐时已被循环播放 w1.audioClips.loop(); Anthem2 w2 = new Anthem(); 当触发到按键事件时执行formKeyPressed 方法,每当系统取得某一个按键的键码时程序都会自动执行w2.audioClips2.play();直到游戏结束。 Anthem2 w3 = new Anthem() ; 当触发到game.IsOver 方法时证明游戏已结束这时程序会调用 w1.audioClips.stop(); w3.audioClips3.play(); 背景音乐消失,结束音乐开始。 6. 游戏窗体的设计视图中,选择“开始游戏”按钮,再右键点击“开始游戏”按钮,从菜单中选“事件”->“Action”事件类型->“actionPerformed”接口方法,将转到源视图中事件处理代码处,加入我们的处理代码,使得游戏开始,如下: private void jButton_startActionPerformed(java.awt.event.ActionEvent evt) { game.isplaying=true; this.requestFocusInWindow(); new TimerRuner(this); } 用同样的方法编写“暂停游戏”、“结束游戏”、“退出游戏”的点击事件处理代码,代码如下: private void jButton_stopActionPerformed(java.awt.event.ActionEvent evt) { game.isplaying=false; } private void jButton_overActionPerformed(java.awt.event.ActionEvent evt) { game.isplaying=false; game.cleargamespace(); } private void jButton_exitActionPerformed(java.awt.event.ActionEvent evt) { game.isplaying=false; System.exit(0); } 2.4 功能: 具有等级功能,不同的等级游戏的难度不一样; 具有分数功能,消行可以得到分数; 具有声音,有背景音和执行不同的操作出现不同的声音; 具有设置功能,可以用来设置初始等级、开始行数、按键设置等。 3. /number2 方块向下 /number4:方块向下 /number3:方块向右 PageDown 方块向右翻传 End 方块向左传 Start 游戏开始 背景音乐的开关 Stop 暂停游戏 over 停止游戏 Speed:调整速度 :选择方块的背景色(默认为浅蓝) 程序运行结果大部分按照预期设计一样,但背景色的改变有时响应过慢,而且每次打开音乐后必须重新按下start 键,这是该游戏的缺陷之一。鉴于此,已作出部分修正,虽然还没有达到游戏更加人性化,但基本上能满足游戏的多方面的需要了。

关于java图形计算难点和java图像处理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。