MATLAB利用极坐标转换画相对角度相对长度的线段

今天在MATLAB论坛上,有一位坛友要画已知相对角度相对长度的连续线段。

查了一些资料,想了一些办法。发现利用极坐标画向量,再由向量叠加的方式进行绘制就可以解决这个问题。写一个trans_cood函数:

1 function [Lx,Ly] = trans_cood(x,y,RHO,R)
2 th = [0; RHO*pi/180];
3 rho = [0; R];
4 [xvec,yvec] = pol2cart(th,rho);
5 Lx(1) = x;
6 Ly(1) = y;
7 Lx(2) = x + xvec(2);
8 Ly(2) = y + yvec(2); 

这个函数中pol2cart生成一个起始点为(0,0),角度由RHO决定,相对长度由R决定的向量。将这个向量与原点相加,得到了所需要的连续线段坐标Lx(2),Ly(2).

例:按下面这个案例画路径图:?

 1 P_x = 0; P_y = 0;
 2 rectangle(‘Position‘, [0 0 4 4.598]);hold on;
 3 x = 0 ; y = 0;
 4 RHO = [90,0,300,60,300,60,300,60,300,90,90,90,180,240,120,240,120,240,120,240,90,90,90,0,300,60,300,60,300,60,0,270];
 5
 6 R = [0.866025403784439,0.500000000000000,1,1,1,1,1,1,1,0.866025403784439,1,0.866025403784439,0.500000000000000,1,1,1,1,1,1,1,0.866025403784439,1,0.866025403784439,0.500000000000000,1,1,1,1,1,1,0.500000000000000,0.866025403784439];
 7 for i = 1 :32
 8    [Lx,Ly] = trans_cood(x,y,RHO(i),R(i));
 9    x = Lx(2); y = Ly(2);P_x =[P_x Lx(2)]; P_y = [P_y Ly(2)];
10 end
11 axis equal
12 plot(P_x,P_y,‘o‘,‘markerfacecolor‘,‘r‘,‘markeredgecolor‘,‘k‘,‘markersize‘,10);
13 H = quiver(P_x(1:end-1),P_y(1:end-1), P_x(2:end) - P_x(1:end-1), P_y(2:end) - P_y(1:end-1));
14 axis([-0.5 4.5 -0.5 5]);
15 set(H,‘color‘,‘b‘,‘maxheadsize‘,0.1);
16 box on;?  

时间: 2024-10-10 06:52:09

MATLAB利用极坐标转换画相对角度相对长度的线段的相关文章

matlab利用m_map工具包画中国地图及散点云图

开始之前需要准备好malab,中国地图shp文件,m_map工具包. 中国地图shp文件可以在下面的链接中下载: https://gadm.org/download_country_v3.html 本文借鉴了下面链接中教程,该方法为matlab自带的画图工具包绘制方法,在我电脑上geoshow命令运行时间特别长,不知道为什么,感兴趣的同学可以试试: https://my.oschina.net/chengwei426/blog/674280 利用m_map绘制中国地图,代码如下: close a

笛卡尔(x,y)空间和数极坐标(log r,角度phi)的互相转换

原理: 数极坐标是对物体视场的一种不变表示,比如所有的正方形都是一样的,产生了一类二维旋转和尺度的不变性 rho=M*log(sqrt(x2+y2)) phi=atan(y/x) 核心函数: cvLogPolar 效果: 代码: #include "cv.h" #include "cxcore.h" #include "highgui.h" #include <iostream> int LogPolar(int argc,char*

利用LibreOffice转换ppt、doc转化pdf

利用LibreOffice转换ppt.doc转化pdf LibreOffice下载地址:  http://www.libreoffice.org/download/libreoffice-fresh/ jodconverter jar包下载:http://sourceforge.net/projects/jodconverter/files/JODConverter/ import java.io.File; import java.io.FileNotFoundException; impor

WebGl 利用缓冲区对象画多个点

效果: 代码: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>WebGl 利用缓冲区对象画多个点</title> 6 </head> 7 <body> 8 9 <canvas id="myCanvas" width="500

如何用课件制作工具画固定长度的线段

作为数学老师必备的课件制作工具,借助几何画板可以构造固定长度的线段,通过改变参数来改变线段长度,简单的说就是用一个数值来控制线段.下面就一起来学习具体制作技巧. 几何画板软件开学特惠,软件获取地址:http://www.jihehuaban.com.cn/video/dingchang-xianduan.html 具体步骤如下: 1.新建参数.打开几何画板数学课件制作工具,单击菜单栏上的"数据"-"新建参数",在弹出的新建参数对话框将名称改为线段的长度,并选择距离,

C# 进制转换 (没有数值的长度限制)

曾经在大学时做过一个c的进制转换算法,那时由于技术的局限性,数值的大小受到限制(系统数据类型长度限制),多年以后,自己那台学习机陈旧后感觉要报废了,整理了一下里面的东西,偶尔在一个角落里发现了这个转换算法,觉得它还有改进的地方,可以让它功能更强大(当时想过要转换超长数值,但受系统数据类型的局限性.个人开发语言深度的认知.以及视界观的狭隘,没能想到可以解决计算超长数据的有效的方法),这里我会将多年前大学里写的那段,和我修改后的粘贴出来,以飨读者. 传入参数: string x 是超大数的字符串格式

利用css样式画各种图形--初步、进阶、高级(一)

转文请注明:穆乙 http://www.cnblogs.com/pigtail/archive/2013/02/17/2914119.html 利用css画图形,是个有利有弊的写法,好处是不用画图,且节省了一些流量,坏处是要写长串的css样式,而且有可能流量并没有减少,用与否视情况而定,个人选择. 下面是我做测试的一些图形,也是参考了一些网站,简单的注解一下和归纳了一下,其中并没涉及到复杂的css画图形. 其中用了css3.0的一些属性,所以这里声明:请用支持css3.0的浏览器看此文章! 正方

matlab 利用while循环计算平均值和方差

一.该程序是用来测输入数据的平均值和方差的 公式: 二. 项目流程: 1. State the problem假定所有测量数为正数或者0,计算这一系列测量数的平均值和方差.假定我们预先不知道有多少测量数据被录入,一个负数标志着测量数据输入结束 2. Define the inputs and outputs程序要求输入的数是未知的正数或者0,程序输出的数是输入数据集的平均值和方差.除此之外,我们将打印出输入的数据数,因为它对于我们检查输入数据是有用的 3.Define the algorithm

利用ARCGIS转换免费下载的谷歌卫星影像(默认WGS84坐标系)

卫星影像可以当做我们内业成图时的工作参考.目前市面上出现的几款好用的卫星图片下载工具,比如91卫图助手.bigemap等软件,都可以自定义导出坐标系及参数,但存在使用限制,比如限制了单次下载大小或者每日下载大小等. 也有无限制下载卫星地图的软件,比如LocaSpace Viewer,但是该软件最终导出只能是WGS84坐标系下的卫星影像,无法直接导出北京54或者西安80坐标投影的卫星影像.但是可以利用ARCGIS软件工具箱中的投影工具来进行影像坐标系统的转换.