使用java,画出任意大小的菱形

  1 public class rhombic {
  2
  3     public static void main(String[] args){
  4
  5                 /**
  6                  * scriber()画菱形的方法,参数 9 是指菱形的对角线的长度
  7                  * 参数,在此处,只使用奇数,
  8                  * 如果,你想要使用偶数,请找我,否则自己处理,哈哈
  9                  */
 10         scriber(29);
 11
 12     }
 13
 14     /**
 15      * 画出一个默认大小的菱形
 16          * 功能已经完成,好像可以简化一下
 17      */
 18     private static void scriber(int number) {
 19         /**
 20          * 画出一个菱形所需要的行数
 21          */
 22         for(int i=0; i<number; ++i){
 23             /**
 24              *画出一个菱形所需要的列数
 25              */
 26             for(int y=0; y<number; ++y){
 27                 if(y==number/2-i || y==number/2+i||i==number/2+y || (y==number-i+number/2-1 && i>number/2))
 28                     System.out.print("*");
 29                 else
 30                     System.out.print(" ");
 31             }
 32             System.out.println();
 33         }
 34
 35     }
 36     /**
 37      * 画出一个默认大小的菱形
 38          * 功能已经完成,好像可以简化一下
 39      */
 40     private static void scriber4(int number) {
 41         /**
 42          * 画出一个菱形所需要的行数
 43          */
 44         for(int i=0; i<number; ++i){
 45             /**
 46              *画出一个菱形所需要的列数
 47              */
 48             for(int y=0; y<number; ++y){
 49                 if(y==number/2-i || y==number/2+i||i==number/2+y || (y==number-i+number/2-1 && i>number/2))
 50                     System.out.print("*");
 51                 else
 52                     System.out.print(" ");
 53             }
 54             System.out.println();
 55         }
 56
 57     }
 58     /**
 59      * 画出一个默认大小的菱形
 60      * 画出菱形的上两个边与左下角的边
 61      */
 62     private static void scriber3(int number) {
 63         /**
 64          * 画出一个菱形所需要的行数
 65          */
 66         for(int i=0; i<number; ++i){
 67             /**
 68              *画出一个菱形所需要的列数
 69              */
 70             for(int y=0; y<number; ++y){
 71                 if(y==number/2-i || y==number/2+i||i==number/2+y)
 72                     System.out.print("*");
 73                 else
 74                     System.out.print(" ");
 75             }
 76             System.out.println();
 77         }
 78
 79     }
 80
 81     /**
 82      * 画出一个默认大小的菱形
 83      * 第二步画了。菱形的左边部分
 84      */
 85     private static void scriber2(int number) {
 86         /**
 87          * 画出一个菱形所需要的总次数
 88          */
 89         for(int i=0; i<number; ++i){
 90             /**
 91              * 每次都产生两个星光,有个特殊的是,第一个、最后一个的星光是重合的。即星光是二合一、
 92              *
 93              */
 94             for(int j=number/2, k=number/2;j>0;--j,++k){
 95                 /**
 96                  * 先画画左上边的星光
 97                  * k居然是画下的一个
 98                  */
 99                 if(i==j || i==k)
100                     System.out.print("*");
101                 else
102                     System.out.print(" ");
103             }
104             System.out.println();
105
106         }
107
108     }
109
110     /**
111      * 画出一个默认大小的菱形
112      * 先画画左上边的星光
113      */
114     private static void scriber1(int number) {
115         /**
116          * 画出一个菱形所需要的总次数
117          */
118         for(int i=0; i<number; ++i){
119             /**
120              * 每次都产生两个星光,有个特殊的是,第一个、最后一个的星光是重合的。即星光是二合一、
121              *
122              */
123             for(int j=number/2;j>0;--j){
124                 /**
125                  * 先画画左上边的星光
126                  */
127                 if(i==j )
128                     System.out.print("*");
129                 else
130                     System.out.print(" ");
131             }
132             System.out.println();
133         }
134     }
135
136 }

run:
              *             
             * *            
            *   *           
           *     *          
          *       *         
         *         *        
        *           *       
       *             *      
      *               *     
     *                 *    
    *                   *   
   *                     *  
  *                       * 
 *                         *
*                           *
 *                         *
  *                       * 
   *                     *  
    *                   *   
     *                 *    
      *               *     
       *             *      
        *           *       
         *         *        
          *       *         
           *     *          
            *   *           
             * *            
              *             
成功构建 (总时间: 0 秒)

run:
    *   
   * *  
  *   * 
 *     *
*       *
 *     *
  *   * 
   * *  
    *   
成功构建 (总时间: 1 秒)

时间: 2024-08-26 23:49:13

使用java,画出任意大小的菱形的相关文章

场景上一个任意三角形,用程序画出任意一个顶点所在的高,三角形由程序在某一个范围内随机生成

解析: 1.题目解析:已知三角形三个顶点的坐标例如A(x1,y1),B(x2,y2),C(x3,y3),画出任意一个顶点的高线,所有必须求出高另一个点(这里我们叫H点)的坐标,然后两个点连成线. 2.逻辑解析:要计算出高线的垂直点的坐标必须用一个方程组. 3.原理解析:根据数学里面的知识,已知两个顶点(例如B.C)的坐标,即可计算出这两个点连成线的直线方程 y = kx + b:其中 k 指的是直线方程中的斜率,b是一个未知常数,因为知道B.C两点的坐标,所以可以计算出直线BC的直线方程, 那么

运用椭圆画法,45行代码画出任意正多边形

最近做Box2dWeb开发时,想写个创建正多边形的功能,可是由于学识尚浅,我在草稿纸上画了,想了一个上午也没有研究出什么好方法.后来翻抽屉的时候,找出了以前哥哥画的一张用同心圆画椭圆的示意图.看到这幅画,我不禁在想椭圆不就是一个N边形吗?圆不就是一个正N边形吗?如果把两个同心圆的半径设定为相等,画出来的椭圆不就是一个圆吗?因此,我立刻开始实验.原本我以为比较难,会用到圆的解析式之类的,没想到就45行代码就搞定了,主要用到的数学知识就是sin和cos. 也许有人不明白如何用同心圆画椭圆,我就借用网

用JAVA写一个函数,功能如下: 任意给定一组数, 找出任意数相加之后的结果为35(任意设定)的情况

用JAVA写一个函数.功能如下:任意给定一组数,例如{12,60,-8,99,15,35,17,18},找出任意数相加之后的结果为35(任意设定)的情况. 可以递归算法来解: package test1; import java.util.Arrays; public class demo { public static void main(String[] args) { String str = "12,60,-8,99,15,35,17,18,8,10,11,12"; int s

全面总结:MATLAB如何画出漂亮的图

在绘图命令中应该如何确定横坐标和纵坐标的标度尺寸(自己定范围) 如何在一个坐标中绘制多条曲线,并用不同的颜色区别. 希望得到答案,谢谢!!!!!!!!!!! help plot help axis axis ('xlabel','ylabel') a1=plot(); hlod on a2=plot(); legend([a1 a2],'图1名',‘图2名') hold off 还可以更多 x1=-pi:pi/12:pi; x2=-pi:pi/12:pi; y1=sin(x1); y2=cos(

achartengine画出动态折线图

achartengine画出动态折线图的效果最近有个项目需要用到实时曲线图,我也上网搜索了一下,最后还是选择使用achartengine这个现成的东西,毕竟自己再canvas一下实在是太麻烦,而且项目时间上也不允许,虽然这个画图引擎比较简单,不过勉强够用了. 下一步问题就来了,我仓促上手,只会画静态图,就是事先定义好几个坐标,然后activity载入的时候折线就已经画好了,可是我的项目要求我每隔一秒种都要把新搜集到的数据添加到图表中去,类似于windows中那个任务管理器里的性能统计图,网上搜来

很值得学习的java 画图板源码

很值得学习的java 画图板源码下载地址:http://download.csdn.net/source/2371150 package minidrawpad; import java.awt.*; import java.awt.event.*; import java.io.InputStreamReader; import java.io.Reader; import javax.swing.*; // 主界面类 public class DrawPad extends JFrame i

[示例] Firemonkey 画出 1 点像素的图

说明:在 Firemonkey 在移动平台 Android & iOS 要直接在 Canvas 画出 1 点像素的线,似乎有点困难,不过利用一点小技巧,还是能达到这个要求的,首先要建立一个 Bitmap 并将大小乘以目前机子的 Scale ,再开始绘图即可. 源码下载:[示例]TestDraw1Pixel_画1点像素_Aone.zip 效果: 参考: http://sourceoddity.com/blog/2013/10/using-tcanvas-in-delphi-for-android/

利用笛卡尔坐标系在控制台画出二叉树

思想 二叉树的概念就不说了,怎样把二叉树画出来,像课本上那样的. 在控制如画的话,就是在一个纯文本的环境下了. 整个控制如可以看作是一个笛卡尔坐标系. 通过给树的结点设置x y 坐标 - 计算x时即按照每行有 2^x 个元素,从root开始,下一行的左右结点的位置位于父结点的左右两边. 计算y时需要使用一开始创建树的时候设置好的树的层级 level 属性. 从而能够在控制台画出二叉树. 树的结点定义 /** * * @auther wuwang * @createTime 2015-6-17 下

点击一个超链接,弹出固定大小的新窗口(js实现)

点击一个超链接,弹出固定大小的新窗口(js实现),有需要的朋友可以参考下. 1.最基本的弹出窗口代码 <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html') --> </SCRIPT> 因为这是一段javascripts代码,所以它们应该放在<SCRIPTLANGUAGE="javascript">标签和</script>之间.<!-