在没有java图形的情况下用java绘制正方形

在没有java图形的情况下用java绘制正方形,java,draw,Java,Draw,给定画布的两个坐标,我们如何在画布上制作正方形图案 以下函数用于在尺寸为20x16的画布上绘制具有给定坐标(x1,y1)、(x3,y3)的正方形- public static void main(String[] args) { DrawMe(20, 16, 16, 14, 8, 14); } public static void DrawMe(int yaxis, int xaxis, int x1, int y1, int x3, int y3) {

给定画布的两个坐标,我们如何在画布上制作正方形图案

以下函数用于在尺寸为20x16的画布上绘制具有给定坐标(x1,y1)、(x3,y3)的正方形-

public static void main(String[] args) {
    DrawMe(20, 16, 16, 14, 8, 14);        
}

    public static void DrawMe(int yaxis, int xaxis, int x1, int y1, int x3, int y3) { 
    int l=Math.abs(x3-x1); int l2=l/2;
    int x2=x1+l2; int y2=y1+l2;
    int x4=x1+l2; int y4=y1-l2;
    char [ ] [ ] canvas = new char [xaxis] [yaxis]; 
    for (int x = 0; x < xaxis; x++) { 
        for (int y = 0; y < yaxis; y++) { 

            if((y==x1 && x==y1) || (y==x2 && x==y2) || (y==x3 && x==y3) || (y==x4 && x==y4))
                //canvas[x][y]='#';
                System.out.print('#');

            else { 
                //canvas[x][y]='.'; 
                System.out.print('.');
            }                
        }  
        System.out.println();
    }/
}
而我想要这样的东西-

....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
........#.......#...                                                                                                                                                                                 
....................
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
....................                                                                                                                                                                                 
............#.......
..........#####.....
.........#######....
........#########...
.........#######....
我尝试了很多事情,但都没有成功。谁能帮我弄清楚吗?这将是一个很大的帮助


如果这个问题看起来很傻,请原谅。只是想弄清楚一些基本情况。提前谢谢。

好的,我的答案不清楚,因为我缺乏英语技能。 我只是把我的源代码放在下面



从技术上讲,你画的是钻石而不是正方形。我建议你先画钻石的顶部。你能把它放在正确的位置吗?这是一个措辞很好的问题。你给出了一个完整的代码示例,如果我愿意,我可以自己编译和运行,你给出了实际输出和预期输出。我希望堆栈溢出的更多新成员都能做到这一点。谢谢,@Code学徒。从技术上讲,我试图用给定的坐标系来画任何四边形。在这里,我有两个,试图找出另外两个。你认为如果我试着用环来做钻石,那能适应一般情况吗?哦。。。这有点复杂。你基本上是在做扫描线算法。我建议用谷歌搜索这个词。注意,你已经绘制了两个计算出的角。不过,我建议更谨慎地这样做。事实上,我建议将绘制所有四个角作为一个练习,以便朝着大致正确的方向前进。因为OP正在绘制文本图形,int是正确的数据类型。我不认为文本图形与绘制图形不同。这有什么区别吗?你是对的。然而,你最初的回答并没有真正解决这个问题。您当前的答案有点太多,因为您基本上为他们做了OPs作业。@代码学徒我想他想扫描线解决问题,所以我只给他一个关于在这种情况下容易发生的数据类型错误的建议。但是我缺乏语言技能可能会带来一些麻烦。是的,OP在问题下面的评论听起来像是一个扫描线练习。我很努力地原谅你的英语技能,专注于你的意思。有时候这很难。在这里回答问题是练习语言技能的好方法。
public class Test {

public static void main(String[] args) {
    Test test= new Test();
    test.DrawMe(20, 16, 16, 14, 8, 14);        
}

/*
 * if you want to draw diamond from 2 points on same X-axis,
 * this is short solution that i think.
 * 
 * But you want to draw rectangle from 2 diagonal points on any location,
 * variables should be changed to float or double for calculating REAL NUMBER,
 * and then other math algorithm is needed.
 */

public void DrawMe(int xaxis, int yaxis, int x1, int y1, int x3, int y3) { 
    int length = Math.abs(x3-x1);
    int harfLength = length / 2; 

    int minX = (x1 > x3) ? x3 : x1;
    int maxX = (x1 > x3) ? x1 : x3;

    int minY = y1 - harfLength;

    for(int y = 0; y < yaxis+1; y++) {
        for(int x = 0; x < xaxis+1; x++) {
            if(x > minX+(Math.abs(y-minY)) && x < maxX-(Math.abs(y-minY))) {
                System.out.print('#');                  
            } else {
                System.out.print('.');
            }
        }
        System.out.println();
    }

}

}
.....................
.....................
.....................
.....................
.....................
.....................
.....................
............#........
...........###.......
..........#####......
.........#######.....
..........#####......
...........###.......
............#........
.....................
.....................
.....................