[转] 打印一近似圆,给定不同半径,圆的大小随之改变

    import java.lang.Math;  

    public class MathDraw
    {
        /**
         * 画图函数,输入圆半径,输出圆
         */
        public static void paint(int r)
        {
           //假定圆心在坐标(r,r)处
           int x = 0; //x的坐标开始
           int y = r * 2;    //y的坐标开始
           int c = 0; //中间空格数量
           int z = 2; //每行递减量,步长设为2是为了调节屏幕纵横比。  

           for (int i = r * 2; i >= 0; i = i-z) {
               //获取画*点坐标的x值
                x = getX(r, y);
               //先画该y值上左边的*
                System.out.print(getSpace(x) +"*");
               c = (r-x)*2; //以圆心对应输出空格
               //再画该y值上右边的*
                System.out.println(getSpace(c) +"*");
               //每次y值递减
                y-=z;
            }
        }  

         /**
         * 获取画*位置,输入圆半径和坐标y值,输出坐标x值
         */
        public static int getX(int r, int y) {
            //取直角三角形长边长
            int h = y - r;
           //求直角三角形短边长
            double l = Math.sqrt((r * r) - (h * h));
           //取x值,Math.round()返回最接近的整数
            return (int) Math.round(r-l);
        }  

        /**
         * 画空格
         */
        public static String getSpace(int i) {
            String s = "";
            for (int j = 0; j < i; j++) {
                s += " ";
            }
            return s;
        }  

        public static void main(String[] args)
        {
           //调用画图函数,参数是圆的半径
           paint(6);
        }
    }

[ 转自https://blog.csdn.net/monarch_lin/article/details/8679856# ]

原文地址:https://www.cnblogs.com/kexve/p/9746963.html

时间: 2024-10-10 12:44:29

[转] 打印一近似圆,给定不同半径,圆的大小随之改变的相关文章

如何检测一个圆在多个圆内?

问题定义: 存在多个半径相同的圆,和一个半径不同的圆,如何判断半径不同的圆完全在一群圆内.下图演示了几种情况,左边是完全在圆内,右边不是. 解决方法之一: 对于红圆在某个黑圆之内或者在所有黑圆之外等的特例情形,可以用简单的圆圆之间的几何判断算法得到结果,对于其余部分相交的一般情形,如果同时满足以下两个条件则红圆在黑圆内: 1. 红圆与所有黑圆的交点都在黑圆内: 2. 黑圆之间的交点如果在红圆内,则其也必然在黑圆内. 否则,红圆不在黑圆内.

UVA 12304 /// 圆的综合题 圆的模板

题目大意: ①给出三角形三个点,求三角形外接圆,求外接圆的圆心和半径. ②给出三角形三个点,求三角形内接圆,求内接圆的圆心和半径. ③给出一个圆,和一个点,求过该点的圆的切线与x轴的夹角(0<=angle<180): ④给出一条直线,一个点p,指定半径r,求经过点p的与直线相切的半径为r的圆: ⑤给出两条直线,求与这两条直线相切的圆: ⑥给出两个圆,求同时与这两个圆相切的圆: 贴一下圆的模板 带了一些注释 主要包括以下内容 // 求三角形abc的外接圆c(圆心.半径) C csC(P a,P

HDU 6206 Apple ( 高精度 &amp;&amp; 计算几何 &amp;&amp; 三点构圆求圆心半径 )

题意 : 给出四个点,问你第四个点是否在前三个点构成的圆内,若在圆外输出"Accepted",否则输出"Rejected",题目保证前三个点不在一条直线上. 分析 : 简单的计算几何问题,如果能够知道圆心和半径(Radius)以及第四个点和圆心的距离(Distance),我们就能够判断第四个点是否在圆外,例如Distance > Radius则在圆外.三点构圆 的圆心和半径是能够推导出公式的 (参考==> http://blog.csdn.net/dea

hdu4063(圆与圆交+线段与圆交+最短路)

写几何题总是提心吊胆.精度问题真心吓人. 其实思路挺简单的一道题,真是什么算法和几何double搞到一块,心里就虚虚的. 思路:求出所有圆之间的交点,然后用这些交点跑一遍最短路就可以了. Aircraft Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1244    Accepted Submission(s): 304 Proble

对给定数组按奇偶性划分,不改变相对顺序

问题描述 给定一个数组,比如 arr = { 1, 3, 1, 4, 1, 5, 2, 0},对该数组进行整理,使得所有奇数都在前面,所有的偶数都在后面,且保证所有奇数的相对顺序不改变,所有偶数的相对顺序不改变. 问题解决 Solution1:T(n) = O(n^2), S(n) = O(1) 利用冒泡排序的思想,对数组进行整理即可. 思想:扫描数组,针对每个发现的奇数,都利用冒泡技术,往前移动该奇数,直到碰见了其他奇数. Solution2:T(n) = O(n), S(n) = O(n)

Unity3D技术之相机使用技巧-从相机到给定距离的视锥体大小

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 从相机到给定距离的视锥体大小 从相机到一定距离的视锥体横截面在世界空间中定义为一个矩形,将可视区域框在内.有时,这对计算给定距离下该矩形的大小.或找出给定矩形大小时的距离比较有用.例如,如果一台移动的相机需要始终完整拍摄到一个对象(如玩家),就不能靠得太近,否则物体的一部分拍不到. 在给定距离的

让我的头像圆起来--Android之圆头像 .

在很多应用中,我们看到,个人主页里面的头像一般都是圆的,设计成圆的会使整个界面布局变的优雅漂亮.那么,怎么使头像变圆呢?有的人说可以在上面加一个中间为透明圆形的png图,用它来遮盖住头像不就行了嘛,但是png四周始终始终是不透明的,怎么做也达不到如下的效果图的. 下面我们讲讲怎么做成的吧. 首先创建一个继承ImageView的抽象类MaskedImage.让他重写onDraw方法.代码如下 public abstract class MaskedImage extends ImageView {

给定文字测量它的大小

// Wrapping to fit horizontal and vertical size. Text will be wrapped and truncated using the NSLineBreakMode. If the height is less than a line of text, it may return// a vertical size that is bigger than the one passed in.// If you size your text u

每天一点点之css - 动画-一个圆绕着另一个圆动(绕着轨迹运动)

最近要开发一个类似星河的效果,需要小圆绕着一定的轨迹运动,这个时候我首先想到的是使用canvas来实现,在实现过程中发现这个实现起来不是很灵活,然后想到css3有动画也可以实现,下面是效果 注:图2是多个的效果,没有代码 html <div class="s"> <div class="m"> <div class="small small1"> <div class="small-p smal