内容简介
安装IDEA
学习IDEA使用
JDK环境配置
创建gradle项目
gradle介绍
如何寻找添加依赖包
安装IDEA
官方版本:
https://www.cnblogs.com/cekaigongchengshi/p/12924725.html
学习IDEA
IDEA常用快捷键
https://www.cnblogs.com/unidentified/p/9182655.html
自动创建构造器
tostring
hashcode
equals
getset方法
gradle工具介绍
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。
它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。
Gradle就是工程的管理,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作。
Gradle优势:
一款最新的,功能最强大的构建工具,用它逼格更高
使用程序代替传统的XML配置,项目构建更灵活
丰富的第三方插件,让你随心所欲使用
Maven、Ant能做的,Gradle都能做,但是Gradle能做的,Maven、Ant不一定能做。
gradle使用
具体配置:https://www.spigotmc.org/wiki/spigot-gradle/
仓库:https://mvnrepository.com/
课后任务
1.玩家小明设置了一片菜园,这个菜园对角线坐标为
点A:(195,103,-43)
点B(193,75,-65)
玩家小芳想破坏菜园破坏点为任意坐标:
要求函数能够输入 X Y Z坐标,判断X Y Z坐标是否在AB点内,
package Entity;
public class Point {
double x;
double y;
double z;
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 getZ() {
return z;
}
public void setZ(double z) {
this.z = z;
}
public Point(double x,double y,double z){
super();
this.x = x;
this.y = y;
this.z = z;
}
public void getPosition(Point p)
{
System.out.println(p+"点的坐标为:("+x+","+y+","+z+")");
}
}
import Entity.Point;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入A点坐标(x、y、z):");
double x1 = sc.nextDouble();
double y1 = sc.nextDouble();
double z1 = sc.nextDouble();
System.out.println("请输入B点坐标(x、y、z):");
double x2 = sc.nextDouble();
double y2 = sc.nextDouble();
double z2 = sc.nextDouble();
System.out.println("请输入C点坐标(x、y、z):");
double x3 = sc.nextDouble();
double y3 = sc.nextDouble();
double z3 = sc.nextDouble();
Point a = new Point(x1, y1, z1);
Point b = new Point(x2, y2, z2);
Point c = new Point(x3, y3, z3);
a.getPosition(a);
b.getPosition(b);
c.getPosition(c);
if (x1 > x2) {
if (x1 >= x3 && x3 >= x2 && y1 >= y3 && y3 >= y2 && z1 >= z3 && z3 >= z2)
System.out.println("C点在A、B点内");
else
System.out.println("C点在A、B点外");
}
else
{
if (x1 <= x3 && x3 <= x2 && y1 <= y3 && y3 <= y2 && z1 <= z3 && z3 <= z2)
System.out.println("C点在A、B点内");
else
System.out.println("C点在A、B点外");
}
}
}
2.三围空间中有两点坐标A坐标为
点A:(195,103,-43)
点B(193,75,-65)
A点向B点发射光束
且轨迹坐标稀疏度为m
求计算光束轨迹稀疏度为m的坐标
m属于(0,正无穷)
打印光束轨迹坐标
import Entity.Point;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请轨迹坐标稀疏度(m>0):");
double m = sc.nextDouble(); //点的总数
System.out.println("请输入A点坐标(x、y、z):");
double x1 = sc.nextDouble();
double y1 = sc.nextDouble();
double z1 = sc.nextDouble();
System.out.println("请输入B点坐标(x、y、z):");
double x2 = sc.nextDouble();
double y2 = sc.nextDouble();
double z2 = sc.nextDouble();
double x3;
double y3;
double z3;
Point a = new Point(x1, y1, z1);
Point b = new Point(x2, y2, z2);
a.getPosition(a);
b.getPosition(b);
for( int i = 1;i <=m;i+=1 ){
if(x1>x2){
x3 = x2+i/(m+1)*(x1-x2);
y3 = y2+i/(m+1)*(y1-y2);
z3 = z2+i/(m+1)*(z1-z2);
}
else{
x3 = x1+i/(m+1)*(x2-x1);
y3 = y1+i/(m+1)*(y2-y1);
z3 = z1+i/(m+1)*(z2-z1);
}
System.out.println("光束轨迹坐标"+i+":("+x3+","+y3+","+z3+")");
}
}
}
3.一个玩家在空间中
坐标为O
坐标值是x:6,y:-7
半径为1,
1.计算出该玩家360度每一个坐标点
2.写一个工具类可以计算玩家任意坐标
任意半径的坐标
提示:
P(cos(30°), sin(30°)),
弧度制: P(cos(PI/6), sin(PI/6))
角度转弧度
通过弧度计算每个角度
所对应的cos值和sin值
分别为x和y坐标
import Entity.Point;
import java.math.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double radian;
double angle = 0;
System.out.print("请输入玩家坐标(x,y):");
double x = sc.nextDouble();
double y = sc.nextDouble();
Point O = new Point(x,y);
O.getPosition(O);
double initialx = x;
double initialy = y;
System.out.println("请输入距离半径radius:");
double radius = sc.nextDouble();
for(angle = 0; angle <=360; angle += 1){
radian = Math.PI*angle/180;
x = initialx + radius*Math.cos(radian);
y = initialy + radius*Math.sin(radian);
System.out.println(angle+"°的坐标为:("+x+","+y+")");
}
}
}