关于如何在直线上定位点的问题

5次浏览(最近30天)
Deepa Maheshvare
Deepa Maheshvare 2020年5月9日
评论道: 托托2020年5月11日
我用下面的方法将一条线分成相等的段 裁判
Xy1 = [141.64 399.53];
Xy2 = [213.32 250.96];
t = linspace (0, 1, 11) ';
x = (1-t)*xy1 + t*xy2;
情节(xy (: 1), xy (:, 2),“这”
输出:
xy =
141.6400 - 399.5300
148.8080 - 384.6730
155.9760 - 369.8160
163.1440 - 354.9590
170.3120 - 340.1020
177.4800 - 325.2450
184.6480 - 310.3880
191.8160 - 295.5310
198.9840 - 280.6740
206.1520 - 265.8170
213.3200 - 250.9600
为了沿着点xy1和xy2之间的直线定位新点,我想做以下操作。
xy
141.6400 - 399.5300 0
148.8080 - 384.6730 1
155.9760 - 369.8160 2
163.1440 - 354.9590 0
170.3120 - 340.1020 0
177.4800 - 325.2450 1
184.6480 - 310.3880 0
191.8160 - 295.5310 0
198.9840 - 280.6740 0
206.1520 265.8170 1.5
213.3200 - 250.9600 0
当位移为0时,在相应的(x,y)的邻域内不需要添加任何点。
对于任何非零值,必须加2个点(一个在右,一个在左)。
例如,如果xy = (10,0)
Del =2意味着需要在代码中生成2个点(8,0)和(12,0),以便在点xy1和xy2之间的线上添加新点。
Del =1意味着需要在代码中生成2个点(9,0)和(11,0),以便在点xy1和xy2之间的线上添加新点。
任何关于如何做到这一点的建议都将是非常有帮助的!

接受的答案

托托
托托 2020年5月9日
编辑:托托 2020年5月11日
假设 列向量的大小是否相同 t 是x的期望变化量,试试这个
Xy1 = [141.64 399.53];
Xy2 = [213.32 250.96];
t = linspace (0, 1, 11) ';
%的新东西
Del = [0 1 2 0 0 1 0 0 1.5 0]';
m = (xy1 (2) -xy2 (2)) / (xy1 (1) -xy2 (1));
xOld = (1-t)*xy1(1) + t*xy2(1);
印第安纳州=▽~ = 0;
x =独特(排序([xOld;xOld(印第安纳州)+德尔(印第安纳州);xOld(印第安纳州)德尔(印第安纳州))));
y = m * (x-xy1 (1) + xy1 (2);
情节(x, y,“这”
如果 在原点和新点之间的期望距离(2范数)试试这个
Xy1 = [141.64 399.53];
Xy2 = [213.32 250.96];
t = linspace (0, 1, 11) ';
= (1-t)* x0 + x0 + x0;
Del = [0 1 2 0 0 1 0 0 1.5 0]';
m = (xy1 (2) -xy2 (2)) / (xy1 (1) -xy2 (1));
θ=每股(m);
印第安纳州=▽~ = 0;
[xyOld;...
: xyOld(印第安纳州)+(德尔(印第安纳州)* cos(θ),德尔(印第安纳州)* sin(θ)];...
xyOld(印第安纳州:)-(德尔(印第安纳州)* cos(θ),德尔(印第安纳州)* sin(θ)]],“行”);
情节(xy (: 1), xy (:, 2),“这”
6个评论
托托
托托 2020年5月11日
我修改了我的答案。

登录评论。

更多的答案(0)

标签

下载188bet金宝搏


释放

R2019b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!