哈哈,没事随便写写。这两天做 http://www.bt285.cn BT下载 与 http://www.5a520.cn 小说520网 这两个网站太累了。
public class Test {
public static void main(String[] args) {
TriFunc tri = new TriFunc();
// 生成一块25×100的画布
Canvas canvas = new Canvas(25, 120);
// 画sin曲线,周期为2
tri.drawSin(canvas, 2.0);
canvas.printCanvas();
System.out.println();
canvas.reset();
// 画cos曲线,周期为2
tri.drawCos(canvas, 2.0);
canvas.printCanvas();
}
}
class TriFunc {
/**
* 画sin曲线
* @param canvas 画布
* @param period 曲线周期
*/
public void drawSin(Canvas canvas, double period) {
char[][] chars = canvas.getCanvas();
// x 轴的比率
double xRatio = (2 * period * Math.PI) / (canvas.getWidth() - 1);
// y 轴的放大倍率
int yMulti = (canvas.getHeight() - 1) / 2;
for(int i = 0; i < canvas.getWidth(); i++) {
// 将数组索引映射为横坐标值
double k = (i - canvas.getWidth() / 2) * xRatio;
// 将sin值映射为数组索引
int h = yMulti - (int)Math.round(Math.sin(k) * yMulti);
chars[h][i] = Canvas.FILL_CHAR;
}
}
/**
* 画cos曲线
* @param canvas 画布
* @param period 曲线周期
*/
public void drawCos(Canvas canvas, double period) {
char[][] chars = canvas.getCanvas();
double xRatio = (2 * period * Math.PI) / (canvas.getWidth() - 1);
int yMulti = (canvas.getHeight() - 1) / 2;
for(int i = 0; i < canvas.getWidth(); i++) {
double k = (i - canvas.getWidth() / 2) * xRatio;
int h = yMulti - (int)Math.round(Math.cos(k) * yMulti);
chars[h][i] = Canvas.FILL_CHAR;
}
}
}
class Canvas {
private int height;
private int width;
private char[][] canvas;
// 填充字符
public static char FILL_CHAR = '+';
// 空白字符
public static char BLANK_CHAR = ' ';
/**
* 构建一块画布
* @param height
* @param width
*/
public Canvas(int height, int width) {
// 由于需要画坐标轴,所以得采用奇数
this.height = height % 2 == 0 ? height + 1 : height;
this.width = width % 2 == 0 ? width + 1 : width;
init();
}
/**
* 初始化画布
*/
private void init() {
this.canvas = new char[height][width];
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++) {
canvas[i][j] = BLANK_CHAR;
}
}
addAxis();
}
/**
* 添加坐标轴
*/
private void addAxis() {
// 添加横坐标
int y = height / 2;
for(int x = 0; x < width; x++) {
canvas[y][x] = '-';
}
// 添加纵坐标
int xx = width / 2;
for(int yy = 0; yy < height; yy++) {
canvas[yy][xx] = '|';
}
// 添加原点
canvas[y][xx] = '+';
}
/**
* 输出画布
*/
public void printCanvas() {
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++) {
System.out.print(canvas[i][j]);
}
System.out.println();
}
}
/**
* 清空画布
*/
public void reset() {
init();
}
public int getHeight() {
return height;
}
public int getWidth() {
return width;
}
public char[][] getCanvas() {
return canvas;
}
}
分享到:
相关推荐
曲线系统包含四个函数切换按钮,一个重置x坐标按钮,和两个互斥的启停按钮。红线为当前x的值,黑线是坐标轴。 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验! 2.主要针对各个计算机相关...
在图形界面 (GUI) 上动态绘制几...曲线系统包含四个函数切换按钮,一个重置x坐标按钮,和两个互斥的启停按钮。红线为当前x的值,黑线是坐标轴。 可以看到函数图像y=x的x和y值相对,x和y的值显示正确且同步。 多种曲线。
且是从给定的一组实验数据出发,寻求已知函数的一个逼近函数y=ρ(x),使得逼近函数从总体上来说与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点(xi,yi),即是最小二乘曲线拟合。本软件就是针对这些...
前面一节我们讲解了图片的显示,其中很多都用到了坐标的变化,这一节我们简单讲一下Qt的坐标系统,其实也还是主要讲上一节的那几个函数。这里我们先讲解一下Qt的坐标系,然后讲解那几个函数,它们分别是: translate...
目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - Python / PHP / C++ 数据分析挖掘 - Python / R / Scala / Matlab 机器学习 - ...
列举几个优点: (1)完全免费,真是难得啊; (2)程序思路非常清晰,网站wiki说程序是由美国佛罗里达州亚特兰大学的数学教授 Markus Hohenwarter所设计的。而看编写人员介绍中,这程序是一个硕士研究生的 ...
列举几个优点: (1)完全免费,真是难得啊; (2)程序思路非常清晰,网站wiki说程序是由美国佛罗里达州亚特兰大学的数学教授Markus Hohenwarter所设计的。而看编写人员介绍中,这程序是一个硕士研究生的毕业论文...
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 说明:最近有很多想学习Python的小伙伴申请单独加我...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Pyth
一方面来说,GeoGebra(geogebra中文版)是一个动态的几何软件,您可以在上面画点、向量、线段、直线、多边形、圆锥曲线,甚至是函数,事后您还可以改变它们的属性;另一方面来说,您也可以直接输入方程和点坐标。所以...
目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - Python / PHP / C++ 数据分析挖掘 - Python / R / Scala / Matlab 机器学习 - ...
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 ...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 -
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 ...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 -
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 ...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 -
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 ...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 -
目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - Python / PHP / C++ 数据分析挖掘 - Python / R / Scala / Matlab 机器学习 - ...
matlab源码求一元函数 ...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - Python / PHP / C++ 数据分析挖掘 - Python / R / Scal
由于可以进行几个重要的数学分析,因此为该算法选择了高斯曲线。 只有直接相关的输入会影响网络。 曲线收敛到零的速度如此之快,以至于可以通过正确规划曲线的位置来避免学习数据的模糊性(参见下面的 K-Means)。 ...
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 说明:最近有很多想学习Python的小伙伴申请单独加我...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Pyth
matlab源码求一元函数 Python - 100天从新手到大师 作者:骆昊 ...目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 -
目前几个比较流行的领域,Python都有用武之地。 云基础设施 - Python / Java / Go DevOps - Python / Shell / Ruby / Go 网络爬虫 - Python / PHP / C++ 数据分析挖掘 - Python / R / Scala / Matlab 机器学习 - ...