% function output=bentley(x0,y0,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5)
function INTERSECTION=bentley(A, B)%pour des fonctions d'appartenances triangulaires
inter=[];
%Queue
A
B
% pause
queue_A=A;
queue_B=B;
queue=[queue_A; queue_B];
queue=queue';
% queue=[A1' A2' A3' A4' B1' B2' B3' B4'];
queue_x=queue(1,:);
queue_y=queue(2,:);
[queue_x_sorted,I]=sort(queue_x);
for i=1:1:length(I)
queue_y_sorted(i)=queue_y(I(i));
end
queue=[];
for i=1:1:length(queue_x_sorted)
queue=[queue ; [queue_x_sorted(i) queue_y_sorted(i)]];
end
queue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ùùùùù
%LINE A
line_A_register_x=[];
line_A_register_y=[];
line_B_register_x=[];
line_B_register_y=[];
Intersection_points_x=[];
Intersection_points_y=[];
line_B_register=[];
line_A_register=[];
%step 2 first iteration
queue(1,:);
% for i=1:1:length(queue)%il faut metrre l'iteration
INTERSECTION=[];
line_A_register=[];
line_B_register=[];
queue(1,:);
A1=A(1,:);
A2=A(2,:);
A3=A(3,:);
A4=A(4,:);
B1=B(1,:);
B2=B(2,:);
B3=B(3,:);
B4=B(4,:);
A
B
while(length(queue)~=0)
% for time=1:1:3
disp('nesrine')
if queue(1,:)==A1
line_A_register=[A1; A2];
elseif queue(1,:)==A2
line_A_register=[A2;A3];%A2
elseif queue(1,:)==A3
line_A_register=[A3; A3];
elseif queue(1,:)==B1
line_B_register=[B1; B2];
elseif queue(1,:)==B2
line_B_register=[B2;B3];
elseif queue(1,:)==B3
line_B_register=[B3;B3];
elseif queue(1,:)==inter
if queue(2,:)==A_inter
% line_A_register=[line_A_register ; [inter; A_inter]];
line_B_register=[inter; B_inter];
line_A_register=[];
elseif queue(2,:)==B_inter
line_A_register=[inter; A_inter];
line_B_register=[];
end
end
queue
queue(1,:)=[]
line_A_register
length(line_A_register)
line_B_register
length(line_B_register)
queue
if ((length(line_A_register)>0) && (length(line_B_register>0)))
for i=1:2:length(line_A_register)
k=i;
for j=1:2:(length(line_B_register))
l=j;
xinti =[];yinti=[];
DA=line_A_register(k,:);
line_A_register;
% i
xA=DA(1);
yA=DA(2);
length(line_A_register)/2
line_A_register(k+1,:);
DB=line_A_register(k+1,:);
xB=DB(1);
yB=DB(2);
line_B_register
l
j
l+1
DC=line_B_register(l,:);
xC=DC(1);
yC=DC(2);
DD=line_B_register(l+1,:);
xD=DD(1);
yD=DD(2);
A=[xA yA; xB yB]
B=[xC yC; xD yD]
inter=intersection_lines(A, B)
if (~isempty(inter))
%à tenir les
A_inter=[xB yB];
B_inter=[xD yD];
xinti =inter(1);
yinti =inter(2);
queue=vertcat(inter,queue); %ajouter l'intersection I1 à la queue
%sort the queue
if xinti>queue(2,1)%pas nécessaire de faire le sort sinon
queue_x=queue(1,:);
queue_y=queue(2,:);
[queue_x_sorted,I]=sort(queue_x);
for i=1:1:length(I)
queue_y_sorted(i)=queue_y(I(i));
end
queue_x_sorted;
queue_y_sorted;
queue=[];
for i=1:1:length(queue_x_sorted)
queue=[queue ; [queue_x_sorted(i) queue_y_sorted(i)]];
end
end%end of sort
%il faut ajouter les lignes aux line_a_register et
%line_B_register
%il faut ajouter les lignes I1A2 et I1B2
line_A_register=[];
line_B_register=[];
else
xinti =[];
yinti =[];
end
if (isempty(INTERSECTION))
INTERSECTION=[INTERSECTION ; [xinti yinti]];
else
[t, tt]=size(INTERSECTION);
for ii=1:t
if (~isempty(xinti) && ~isempty(yinti) && xinti==INTERSECTION(ii,1)&& yinti==INTERSECTION(ii,2))
INTERSECTION=INTERSECTION ;
else
INTERSECTION=[INTERSECTION ; [xinti yinti]];
end
end
end
end
end
end
% [xint yint]=[[xint yint] ; [xinti yinti]];
end
[m n]=size(INTERSECTION);
bentley.rar_Bentley Ottman _bentley
版权申诉
60 浏览量
2022-09-22
23:29:35
上传
评论
收藏 1KB RAR 举报
朱moyimi
- 粉丝: 61
- 资源: 1万+
最新资源
- 基于STM32F103C8T6单片机蓄电池在线监测系统主板硬件(原理图+PCB)工程文件.zip
- mysql大纲资料.txt
- c++大纲资料.txt
- 效率工具bat脚本实现日志提取
- MyBatis 中动态 SQL 的示例
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈