请高手帮个忙

cdwy 2002-11-16 11:17:12
请高手帮个忙。请问设置绘图时的坐标系是哪个方法?在哪个包哪个类中?如何绘制出坐标系?得到三角形三边长,要画出来。可先选一条边确定两点座标,但第三个座标如何确定?请高手多多指教
...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dentance 2002-11-17
  • 打赏
  • 举报
回复
//the following is the implementation i just did.
import java.awt.*;
import javax.swing.*;
import java.io.*;

class test extends JFrame
{
static int[] trigle=new int[3];
static final int ORINGE=150,JINDU=10000;

public void paint(Graphics g)
{
if(judge(trigle)==true)
{
drawTrigle(g,trigle);
}
}

public void drawTrigle(Graphics g,int[] t)
{//draw a trigular in terms of the length of the trigular
g.drawLine(ORINGE,ORINGE,ORINGE+t[0],ORINGE);//draw AB;
double dots[][]=new double[JINDU][2];
for(int i=0;i<JINDU;i++)
{
dots[i][0]=ORINGE+t[1]*Math.cos(Math.PI*i/JINDU);
dots[i][1]=ORINGE-t[1]*Math.sin(Math.PI*i/JINDU);
}
int dot[]=new int[2];
double min=JINDU;
for(int i=0;i<JINDU-1;i++)
{
double a=Math.abs((ORINGE+t[0]-dots[i][0])*(ORINGE+t[0]-dots[i][0])+
(ORINGE-dots[i][1])*(ORINGE-dots[i][1])-t[2]*t[2]);
if(a<min)
{
min=a;
dot[0]=(int)dots[i][0];
dot[1]=(int)dots[i][1];
}
}
g.drawLine(ORINGE+t[0],ORINGE,dot[0],dot[1]);//draw BC
g.drawLine(ORINGE,ORINGE,dot[0],dot[1]);//draw AC

}

boolean judge(int[] t)
{//judge whether the length surplied can form an trigular.
for(int i=0;i<3;i++)
{
int a=i,b=a+1>2? 0:a+1,c=b+1>2? 0:b+1;
if(t[a]+t[b]<t[c]||t[a]-t[b]>t[c])return false;
}
return true;
}
public static void main(String[] args)throws Exception
{
trigle[0]=30*3;
trigle[1]=40*3;
trigle[2]=50*3;
new test();
}

test()
{
this.setSize(400,400);
this.setVisible(true);
}
}
dentance 2002-11-17
  • 打赏
  • 举报
回复
用数学吧:
先选一条边确定两点座标(A,B、此边为c)根据a的长度,可以画出C的轨迹(是以B为圆心,a为半径的圆)连接AC,计算长度,若为b,则此C点为所求。
笨是笨了点,但应该正确,right?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧