java 画一个曲线实例代码(二款网页特效phttp://www.111cn.net/网页特效p.html target=_blank >jsp教程绘制曲线实例)
/*
参数名 描 述
画出模式 必需的; 整数型。参数值可以为以下常量: 6912、#点,将画出的多边形显示为点; 6913、#线,将画出的多边形显示为线段;
曲线起点 必需的; 整数型。参数值应该介于 0 和"设置曲线等分点"命令中的"u向等分数"之间。
曲线终点 必需的; 整数型。参数值应该介于 0 和"设置曲线等分点"命令中的"u向等分数"之间
*/
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;
}
}
}
首页 1 2 末页