圆的练习

public class Circle {
int x;
int y;
int r;
Circle(){//无参的构造方法
	x=1;
	y=1;
	r=1;
	System.out.println("圆c1的圆心为:"+"("+x+","+y+")"+"半径为"+r);
}
Circle(int xx,int yy,int rr){//有参的构造方法
	x=xx;
	y=yy;
	r=rr;
	System.out.println("圆c2的圆心为:"+"("+x+","+y+")"+"半径为"+r);
}
void circleSame(Circle c) {
	if(x==c.x&&y==c.y&&r==c.r)
		System.out.println("两个圆重叠");
	else
		System.out.println("两个圆不重叠");
		
}
}public class text3 {
	public static void main(String[] args) {
		 Scanner sc=new Scanner(System.in); 
		 int xx=sc.nextInt(); //输入圆的圆心坐标和半径
		 int yy=sc.nextInt();
		 int rr=sc.nextInt();
		 Circle c1=new Circle(); //用Circle类创建对象c1
		 Circle c2=new Circle(xx,yy,rr); //创建对象c2
		 c1.circleSame(c2); //对象c1调用circleSame方法
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个MATLAB程序,用于计算柱体在透视投影下的图像: ```matlab % 定义柱体参数 r = 1; % 半径 h = 2; % 柱高度 % 定义视点参数 camera_pos = [0, 0, -5]; % 相机位置 camera_target = [0, 0, 0]; % 相机朝向 % 生成柱体上的点 theta = linspace(0, 2*pi, 100); % 角度范围 x = r * cos(theta); % 柱体上的x坐标 y = r * sin(theta); % 柱体上的y坐标 z = linspace(0, h, 100); % 柱体上的z坐标 [X, Y, Z] = meshgrid(x, y, z); % 生成网格点 % 投影点到相机平面上 camera_dir = camera_target - camera_pos; % 相机方向向量 camera_dir = camera_dir / norm(camera_dir); % 相机方向向量归一化 plane_normal = camera_dir; % 投影平面法向量与相机方向相同 plane_point = camera_pos; % 投影平面上的一点为相机位置 P = plane_project([X(:), Y(:), Z(:)], plane_point, plane_normal); % 投影到相机平面上 % 绘制柱体的投影 figure scatter(P(:, 1), P(:, 2), '.', 'MarkerEdgeColor', 'k') axis equal axis off function P = plane_project(Q, P0, n) % 投影点到平面上 % Q: 待投影的点集,每行为一个点的坐标 % P0: 投影平面上的一点 % n: 投影平面的法向量,必须为一个归一化向量 % P: 投影后的点集,每行为一个点的坐标 Q = Q - repmat(P0, size(Q, 1), 1); % 将平面上的一点移动到原点 d = sum(Q .* repmat(n, size(Q, 1), 1), 2); % 计算点到平面的距离 P = Q - repmat(d, 1, 3) .* repmat(n, size(Q, 1), 1); % 投影到平面上 end ``` 该程序使用了一个自定义函数 `plane_project`,用于将点集投影到平面上。该函数的实现如下: ```matlab function P = plane_project(Q, P0, n) % 投影点到平面上 % Q: 待投影的点集,每行为一个点的坐标 % P0: 投影平面上的一点 % n: 投影平面的法向量,必须为一个归一化向量 % P: 投影后的点集,每行为一个点的坐标 Q = Q - repmat(P0, size(Q, 1), 1); % 将平面上的一点移动到原点 d = sum(Q .* repmat(n, size(Q, 1), 1), 2); % 计算点到平面的距离 P = Q - repmat(d, 1, 3) .* repmat(n, size(Q, 1), 1); % 投影到平面上 end ``` 该函数的输入参数为待投影的点集 `Q`,投影平面上的一点 `P0`,以及投影平面的法向量 `n`。函数首先将投影平面上的一点移动到原点,然后计算每个点到投影平面的距离,并将点投影到平面上。最后,函数返回投影后的点集 `P`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百无聊赖Zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值