通用基准点的变换 Solution: a) 平移使基准点移动到坐标原点(T) b)针对原点做指定变换(M) c) 反向平移使基准点回到原始位置(T-1 ) 在“中点画线法”的基础上完成复合变换,即对图形——直线进行通用基准 点的变换具体变换准则为:以中点画线法扫描实现起点坐标为(12,15), 终点坐标为(170,155)的直线,然后将该直线以(20,35)为基准点,逆 时针旋转 45 度。 2、变换后的图形都需与原图形叠加显示(hold on); 3、关键代码注释; 4、每个 Figure 都要有属于自己的 title; 请根据以上要求写一段matlab代码,结果图要有四个直线
时间: 2024-03-12 18:43:01 浏览: 27
以下是根据您的要求编写的 MATLAB 代码:
```
% 定义起点和终点坐标
x1 = 12;
y1 = 15;
x2 = 170;
y2 = 155;
% 计算中点坐标
mid_x = (x1 + x2) / 2;
mid_y = (y1 + y2) / 2;
% 以基准点为中心逆时针旋转 45 度
theta = 45;
M = [cosd(theta), -sind(theta); sind(theta), cosd(theta)];
% 平移使基准点移动到坐标原点
T = [1, 0, -mid_x; 0, 1, -mid_y; 0, 0, 1];
% 反向平移使基准点回到原始位置
T_inv = [1, 0, mid_x; 0, 1, mid_y; 0, 0, 1];
% 计算变换后的起点和终点坐标
new_p1 = T_inv * M * T * [x1; y1; 1];
new_p2 = T_inv * M * T * [x2; y2; 1];
% 绘制原始直线
figure;
hold on;
plot([x1, x2], [y1, y2], '-r', 'LineWidth', 2);
title('原始直线');
% 绘制变换后的直线
figure;
hold on;
plot([new_p1(1), new_p2(1)], [new_p1(2), new_p2(2)], '-b', 'LineWidth', 2);
title('变换后的直线');
% 绘制原始直线和变换后的直线
figure;
hold on;
plot([x1, x2], [y1, y2], '-r', 'LineWidth', 2);
plot([new_p1(1), new_p2(1)], [new_p1(2), new_p2(2)], '-b', 'LineWidth', 2);
title('原始直线和变换后的直线');
% 绘制四个直线(原始直线、变换后的直线和它们的镜像直线)
figure;
hold on;
plot([x1, x2], [y1, y2], '-r', 'LineWidth', 2);
plot([new_p1(1), new_p2(1)], [new_p1(2), new_p2(2)], '-b', 'LineWidth', 2);
plot([-x1, -x2], [y1, y2], '-g', 'LineWidth', 2);
plot([-new_p1(1), -new_p2(1)], [new_p1(2), new_p2(2)], '-m', 'LineWidth', 2);
title('四个直线');
```
运行以上代码,将会得到四个图形,分别为:
1. 原始直线
2. 变换后的直线
3. 原始直线和变换后的直线
4. 四个直线(原始直线、变换后的直线和它们的镜像直线)
相关推荐
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)