请教两道java题目,感激不尽,别无回报,只有加分~~

1.编写一个程序,该程序绘制10x10的黑白棋盘格。2.编写一个程序,绘制一个以中心为轴旋转着的一个周期的正弦曲线,形成转动的效果实质,对于0~π的每个角绘制成正弦曲线,... 1.编写一个程序,该程序绘制10x10的黑白棋盘格。
2.编写一个程序,绘制一个以中心为轴旋转着的一个周期的正弦曲线,形成转动的效果实质,对于0~π的每个角绘制成正弦曲线,擦掉一个再绘制一个,这样形成动画效果

求Java源程序 谢谢!!!!!!!!!
展开
 我来答
岑行柏3204
2008-12-06 · TA获得超过2435个赞
知道大有可为答主
回答量:1549
采纳率:0%
帮助的人:1318万
展开全部
//-------------------1: Grids.java------------------------//
import java.awt.*;
import javax.swing.*;

public class Grids extends Canvas{

public void paint(Graphics g){
int rows = 10;//行数
int cols = 10;//列数
int mw = this.getWidth();//画布宽
int mh = this.getHeight();//画布高
int w = (mw-20) / cols;//单元格宽
int h = (mh-20) / rows;//单元格高
int ox = (mw-cols*w)/2;//X向偏移
int oy = (mh-rows*h)/2;//Y向偏移

//填充背景
g.setColor(Color.gray);
g.fillRect(0,0,getWidth(),getHeight());

for(int i=0; i<rows; i++){
for(int j=0; j<cols; j++){
//设置单元格颜色
if((i+j)%2==0)
g.setColor(Color.black);
else
g.setColor(Color.white);
//填充单元格
g.fillRect(j*w+ox,i*h+oy,w,h);
}
}
//绘制边框
g.setColor(Color.black);
g.drawRect(ox,oy,cols*w,rows*h);
g.dispose();
}

public static void main(String[] args) {
JFrame f = new JFrame("Grids test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(330,350);
f.setLocationRelativeTo(null);
f.add(new Grids());
f.setVisible(true);
}
}

//----------------------2: SinCurve.java-------------------------//
import java.awt.*;
import java.awt.geom.Path2D;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class SinCurve extends Canvas implements Runnable{
private int delay = 30;
private double dgr,step=10;
public void run(){
while(true){
go();
try {
Thread.sleep(delay);
} catch (Exception e) {}
}
}

private void go(){
int w = this.getWidth();
int h = this.getHeight();
BufferedImage img = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Shape sin = nextShape(h);
Graphics2D g = img.createGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.clearRect(0,0,w,h);
g.setColor(Color.GRAY);
g.drawLine(w/2,10,w/2,h-10);
g.drawLine(0,h/2,w,h/2);
g.setColor(Color.yellow);
g.draw(sin);
g.dispose();
Graphics gg = this.getGraphics();
gg.drawImage(img,0,0,null);
gg.dispose();
}

private Shape nextShape(double h){
Path2D p = new Path2D.Double();
double w = 100;
double x = -w;
dgr+=step;
x+=(dgr%360)/360*w;
p.moveTo(x,h/2);
for(int i=0; i<16; i++){
p.quadTo(x+w/4,0,x+w/2,h/2);
p.quadTo(x+w*3/4,h,x+w,h/2);
x+=w;
}
return p;
}

public static void main(String[] args) {
JFrame f = new JFrame("Sin curve test");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(400,300);
f.setLocationRelativeTo(null);
SinCurve sc = new SinCurve();
f.add(sc);
f.setVisible(true);
new Thread(sc).start();
}
}
canipi
2008-12-06
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
我来试下 多半第一题可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fallenboy
2008-12-06
知道答主
回答量:33
采纳率:0%
帮助的人:15.3万
展开全部
1、for(int i = 0 ; i < 10;i++)
{
for(int j =0 ; j < 10 ;j++)
{
if((i+j)%2==0)
{
g.setColor(0x000000);
}else
{
g.setColor(0xffffff);
}
g.fillRect(j*10,i*10,10,10);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式