Java近似圆

效果图与原理图

                             

代码:

 1 public class Circle
 2 {
 3     public static void main(String[] args)
 4     {
 5         int radius = 10;
 6         System.out.println("输出半径为" + radius + "的近似圆");
 7         paint(radius);
 8     }
 9
10     public static void paint(int r)
11     {
12         //假设圆心在(r, r)
13         int x;    //当前的x坐标
14         int y = 2 * r;   //当前的y坐标
15         int space;    //每行中间的空格数量
16         int d = 2;   //每行的递减量
17         for(int j = 2*r; j>=0; j=j-d)
18         {
19             x = getX(r, y);
20             space = 2 * (r-x);
21             System.out.print(getSpace(x+10) + "*");  //左边的*号,同时向右平移了10个单位
22             System.out.println(getSpace(space) + "*");   //右边的*号
23             y -= d;
24         }
25     }
26
27     public static int getX(int r, int y)
28     {    {
29
30         double tempX;
31         tempX = Math.sqrt(r*r - (y-r)*(y-r));
32         return (int)Math.round(-tempX +r); //Math.round(double d)返回最接近参数的 long,所以需要进行类型强制转换
33     }
34
35     public static String getSpace(int space)
36     {
37         String s = "";
38         for(int i=0; i<space; i++)
39         {
40             s = s+" ";
41         }
42         return s;
43     }
44 }

时间: 2024-10-24 00:29:04

Java近似圆的相关文章

java 打印近似圆

只要给定不同半径,圆的大小就会随之发生改变近似圆如图 设半径为r,圆心为(r,r). 由勾股定理 易得y = r -√(2*r*x-x*x) 此处注意x+=2.因为打印窗口上一行2个字节的宽度与一列的宽度相同. 原文地址:https://www.cnblogs.com/Reyon/p/8645330.html

JAVA求圆的面积

import java.text.DecimalFormat;import java.util.Scanner; public class TheAreaOfCircle { public static void main(String[] args) { /*问题描述 给定圆的半径r,求圆的面积. 输入格式 输入包含一个整数r,表示圆的半径. 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积. 说明:在本题中,输入是一个整数,但是输出是一个实数. 对于实数输出的问题,请

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

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

java程序设计基础篇 复习笔记 第二单元

1原始数据类型(primitive data type) == 基本类型 (fundamental type)byte short int long float double char boolean引用类型 reference type2System.in System.outjava.util.ScannerScanner input = new Scanner (System.in);nextByte()nextShort()nextInt()nextLong()nextFloat()ne

OpenCV曲线拟合与圆拟合

OpenCV曲线拟合与圆拟合 使用OpenCV做图像处理与分析的时候,经常会遇到需要进行曲线拟合与圆拟合的场景,很多OpenCV开发者对此却是一筹莫展,其实OpenCV中是有现成的函数来实现圆拟合与直线拟合的,而且还会告诉你拟合的圆的半径是多少,简直是超级方便,另外一个常用到的场景就是曲线拟合,常见的是基于多项式拟合,可以根据设定的多项式幂次生成多项式方程,然后根据方程进行一系列的点生成,形成完整的曲线,这个车道线检测,轮廓曲线拟合等场景下特别有用.下面就通过两个简单的例子来分别学习一下曲线拟合

地球经纬度坐标系详解

一.地球模型 地球是一个近似椭球体,测绘时用椭球模型逼近,模型如下图: 赤道是一个半径为a的近似圆,任一圈经线是一个半径为b的近似圆.a称为椭球的长轴半径,b称为椭球的短轴半径. a≍6378.137千米,b≍6356.752千米.(实际上,a也不是恒定的,最长处和最短处相差72米,b的最长处和最短处相差42米,算很小了)

路网最优路径算法之一分层搜索

1 背景 前面介绍了关于双向及启发式的搜索,它们均可以实现了效率的倍增.但是应用到长距离(例如武汉——杭州大于500公里)的搜索时,平均效率存在100ms级甚至s级的耗时,显然这样一个面对广大用户群的互联网服务引擎效率是不可接受的,那么有没有优化的方向可以实现数量级的提升?      但人类对效率与正确的极致追求也是不止境的.关于双向及启发式搜索,它们的优化初衷均是一致的:缩短搜索范围.有人想到另一个路网搜索优化的方向:稀疏搜索路网密度——分层算法. 2 分层算法 假设有个长距离路径搜索的cas

地球坐标系与投影方式的理解(关于北京54,西安80,WGS84;高斯,兰勃特,墨卡托投影)

一.地球模型 地球是一个近似椭球体,测绘时用椭球模型逼近,这个模型叫做参考椭球,如下图: 赤道是一个半径为a的近似圆,任一圈经线是一个半径为b的近似圆.a称为椭球的长轴半径,b称为椭球的短轴半径. a≍6378.137千米,b≍6356.752千米.(实际上,a也不是恒定的,最长处和最短处相差72米,b的最长处和最短处相差42米,算很小了) 地球参考椭球基本参数: 长轴:a 短轴:b 扁率:α=(a-b) / a 第一偏心率:e=√(a2-b2) / a 第二偏心率:e'=√(a2-b2) /

7天学习opengl入门

http://blog.csdn.net/slience_perseverance/article/details/8096233 10月13号下午3:00队长给我开了一个会,10.14号开始学习opengl 今天10月21号,期间,虽然有时候课程很满,但每天都至少写一个程序. 当然,这些只是我7天来业余时间的学习,我觉得这个网址不错,大家如果也想学习opengl,并且具有一定的C语言C++基础,入门课程推荐大家去学习这个网址http://www.cnblogs.com/crazyxiaom/a