首页 > 其他分享 >9.19 绘制图形

9.19 绘制图形

时间:2023-06-11 18:57:01浏览次数:39  
标签:9.19 Point double args 坐标 new 图形 绘制 public

demo1.用工厂设计模型,封装实现绘制,圆形,三角形

在整体设计中绘图是一个公共的标准,这样就需要通过接口来描述,而后不同的图形实现此标准后完善各自的功能就可以实现统一的处理结构,
本课程主要模拟一个绘图的操作形式讲解了接口以及工厂类的应用

interface IGraphical {	// 定义绘图标准
	public void paint() ; // 绘图
}

class Point {
	private double x ;
	private double y ;
	public Point(double x,double y) {
		this.x = x ; 
		this.y = y ;
	}
	public double getX() {
		return this.x ;
	}
	public double getY() {
		return this.y ;
	}
}

class Triangle implements IGraphical {	// 绘制三角形
	private Point [] x ;	// 保存第一条边的坐标---zb:第一个点坐标数组
	private Point [] y ;	// 保存第二条边的坐标---zb:第二个点坐标数组
	private Point [] z ;	// 保存第三条边的坐标
	public Triangle(Point [] x,Point [] y , Point [] z) {
		this.x = x ; 
		this.y = y ; 
		this.z = z ;
	}

	public void paint() {
		System.out.println("绘制第一条边,开始坐标:[" + this.x[0].getX() + "," + this.x[0].getY() +"],结束坐标:[" + this.x[1].getX() + "," + this.x[1].getY() +"]" ) ;
		System.out.println("绘制第二条边,开始坐标:[" + this.y[0].getX() + "," + this.y[0].getY() +"],结束坐标:[" + this.y[1].getX() + "," + this.y[1].getY() +"]" ) ;
		System.out.println("绘制第三条边,开始坐标:[" + this.z[0].getX() + "," + this.z[0].getY() +"],结束坐标:[" + this.z[1].getX() + "," + this.z[1].getY() +"]" ) ;
	}
}

class Circular implements IGraphical {
	private double radius ;
	public Circular(double radius) {
		this.radius = radius ;
	}

	public void paint() {
		System.out.println("以半径为“" + this.radius + "”绘制圆形。") ;
	}
}

// 工厂设计模式!!!!
class Factory {
	public static IGraphical getInstance(String className,double ... args) {//---- 这里IGraphical含义,数据类型???????
		if("triangle".equalsIgnoreCase(className)) {
			return new Triangle(
				new Point[] {
					new Point(args[0],args[1]) , new Point(args[2],args[3])} ,
				new Point[] {
					new Point(args[4],args[5]),new Point(args[6],args[7])} ,
				new Point[] {
					new Point(args[8],args[9]),new Point(args[10],args[11])}
				) ;
		} else if("circular".equalsIgnoreCase(className)) {
			return new Circular(args[0]) ;
		} else {
			return null ;
		}
	}
}

public class HelloWorld {
	public static void main(String args[]) {
		IGraphical iga = Factory.getInstance("triangle",1.1,2.2,3.3,4.4,11.11,22.22,33.33,
44.44,111.111,222.222,333.333,444.444) ;
		iga.paint() ;
        
		IGraphical igb = Factory.getInstance("circular",88.11) ;
		igb.paint() ;
	}
}

标签:9.19,Point,double,args,坐标,new,图形,绘制,public
From: https://www.cnblogs.com/pansidong/p/17473381.html

相关文章

  • 9.20 图形结构
    定义类Shape,用来表示一般二维图形。Shape具有抽象方法area()和perimeter(),分别用来计算形状的面积和周长。试定义一些二维形状类(如矩形、三角形、圆形、椭圆形等),这些类均为Shape类的子类。abstractclassAbstractShape{ publicabstractdoublearea();//求面积 publicab......
  • 【Python】在同一图形中的绘制多个子图
    1.引言有时我们需要并排绘制两个图形,这不仅是为了更好地利用空间,而且主要是因为为了更加直观地对比分析数据。其实在python中可以利用subplot来实现上述功能。闲话少说,我们直接开始吧!2.准备工作这里,我们不妨先来举个例子,比方说,我们正在分析一家出租车公司的出行分布,假设我们想知......
  • 使用Python处理声音文件(五):绘制立体声音乐左右声道频谱
    说明:1、需要首先安装Python扩展库scipy。2、本文代码只适用于未压缩的WAV声音文件。参考代码:绘制结果:......
  • Python+matplotlib绘制海螺贝壳上美丽的线条
    封面图片:《Python可以这样学》,董付国著,清华大学出版社,2017,本书在台湾同时发行繁体版。=============在海洋中的亿万只海螺中,大部分都是右旋螺纹,从底部看的话海螺开口在右边,如下图所示:据说,在几千只海螺中也很难找到一只左旋海螺,非常稀少,但也不是没有,如下图:技术要点:使用Python+numpy+......
  • Python+matplotlib绘制三维图形5个精选案例
    如果要绘制三维图形,首先需要使用下面的语句导入相应的对象:frommpl_toolkits.mplot3dimportAxes3D然后使用下面的两种方式之一声明要创建三维子图:ax=fig.gca(projection='3d')ax=plt.subplot(111,projection='3d')接下来就可以使用ax的plot()方法绘制三维曲线、plot_surface......
  • Python+matplotlib绘制动态更新的柱状图
    问题描述:编写程序,生成测试数据,绘制水平柱状图,然后每隔0.5秒更新一次数据并实时根据最新数据绘制水平柱状图。参考代码:运行效果:公众号“Python小屋”......
  • 用 Python + turtle 模块绘制五星红旗
    用Python绘制五星红旗在这个代码示例中,我将介绍如何使用Python的turtle模块绘制五星红旗。turtle模块是一个图形库,可以轻松地在Python中实现简单的绘图功能。导入模块首先,我们需要导入turtle模块和math模块,以便能够使用数学函数来计算五角星的边长、比例尺等参数......
  • Python+matplotlib绘制背景色和坐标轴刻度变化的动态柱状图
    问题描述:已知某商品从2000年至2019年每年12个月的价格波动情况,要求绘制动态柱状图进行可视化,要求每年改变一次轴域背景色。参考代码:运行效果:公众号“Python小屋”......
  • Python+matplotlib绘制动态折线图
    问题描述:动态绘制折线图。参考代码:运行效果:公众号“Python小屋”......
  • Python+matplotlib绘制多门课程学生成绩分布饼状图
    封面图片:《Python程序设计实验指导书》,董付国,清华大学出版社=================饼状图比较适合展示一个总体中各个类别所占的比例,例如商场年度营业额中各类商品、不同员工的占比,家庭年度开销中不同类别的占比等。扩展库matplotlib.pyplot中的pie()函数可以用来绘制饼状图,语法如下:pie......