亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spsub.m

?? 麻省理工學院的人工智能工具箱,很珍貴,希望對大家有用!
?? M
字號:
function [xps,yps] = spsub(x1,y1,x2,y2)
%SPSUB  Simple polygon subtraction.
%   [XPS,YPS] = (X1,Y1,X2,Y2) performs the simple polygon subtraction operation.
%   The resulting contours and hole are returned in cell arrays of x and y
%   coordinates.  Each contour is represented as a cell element.  Holes are
%   separated from the contour by NaNs.  Multiple output contours may be 
%   present with no holes, or one contour with one hole.

%  Written by:  A. Kim
%  Copyright 1996-2002 Systems Planning and Analysis, Inc. and The MathWorks, Inc.
%  $Revision: 1.3 $ $Date: 2002/03/20 21:26:56 $

err = eps*1e5;

% clean input polygon data
[x1,y1] = cleandata(x1,y1);
[x2,y2] = cleandata(x2,y2);

% eliminate differences in numerical error
[x2,y2] = ptserr(x2,y2,x1,y1,err);

% polygon 1 must be counter-clockwise and polygon 2 must be clockwise
a1 = sparea(x1,y1);
if a1>0
	x1 = flipud(x1);
	y1 = flipud(y1);
	end
a2 = sparea(x2,y2);
if a2<0
	x2 = flipud(x2);
	y2 = flipud(y2);
end

% check to see if boolean operation can be performed logically
% if so, return outputs and exit
if isempty([x1 y1]) & isempty([x2 y2])
% an empty polygon
	xps = {};  yps = {};  return
elseif isempty([x1 y1]) & ~isempty([x2 y2])
% polygon 1 empty
	xps = {};  yps = {};  return
elseif ~isempty([x1 y1]) & isempty([x2 y2])
% polygon 2 empty
	xps = {x1};  yps = {y1};  return
end
[p1,p2] = polyinit(x1,y1,x2,y2);
if strcmp(p1,'in') & strcmp(p2,'in')
% if polygons are similar, subtraction yields nothing
	xps = {};  yps = {};  return
elseif strcmp(p1,'in') & strcmp(p2,'out')
% if polygon 1 is inside of polygon 2, contour is polygon 2, nothing left
	xps = {};  yps = {};  return
elseif strcmp(p1,'out') & strcmp(p2,'in')
% if polygon 2 is inside of polygon 1, contour is polygon 1, hole is polygon 2
	xps = {[x1; nan; x2]};  yps = {[y1; nan; y2]};  return
elseif strcmp(p1,'out') & strcmp(p2,'out')
% if both polygons are outside of each other, contour is polygon 1 (no subtr)
	xps = {x1};  yps = {y1};  return
end

% ensure that first point of polygon 1 is located either inside or outside
% of polygon 2 and not on its border
[x1,y1,x2,y2] = adjustpoly(x1,y1,x2,y2);

% calculate intersection points
[xi,yi,ii,ri] = polyxpoly(x1,y1,x2,y2,'filter');

% determine if first point of polygon 1 is located inside of polygon 2
if inpolygon(x1(1),y1(1),x2,y2)
	p1in = 1;
else
	p1in = 0;
end

% insert intersection points into polygon data
[x1,y1,i1,x2,y2,i2] = insertintpts(x1,y1,x2,y2,xi,yi,ii,ri);

% stack coordinates and indices for continuity
i1 = [i1; i1(2:end)];  x1 = [x1; x1(2:end)];  y1 = [y1; y1(2:end)];
i2 = [i2; i2(2:end)];  x2 = [x2; x2(2:end)];  y2 = [y2; y2(2:end)];

% initialize parameters
count = 0;
i0 = (1:length(xi))';
xps = {};  yps = {};

% multiple polygons - continue until all intersection points are used
while ~isempty(i0)

% if first point of polygon 1 is inside of polygon 2, must start with an 
% even-numbered intersection point
% if first point of polygon 1 is outside of polygon 2, must start with an 
% odd-numbered intersection point
	if (p1in & mod(i0(1),2)) | (~p1in & ~mod(i0(1),2))
		i0 = [i0(2:end); i0(1)];
	end

% initialize parameters
	startpt = i0(1);  endpt = 0;  tmppt = startpt;
	x = [];  y = [];  z = [];

% begin with first intersection point
% check to see if orginal starting point is reached
	while endpt~=startpt

% traverse polygon 2 until intersection point is reached
		itmp = find(i2==tmppt);			ipt1 = itmp(1);
		itmp = find(i2(ipt1+1:end));	ipt2 = ipt1+itmp(1);
		z = [z; find(i0==tmppt)];
		if (x2(ipt1)==x2(ipt2) & y2(ipt1)==y2(ipt2)) & (ipt2-ipt1)==1
			indx2 = [];
		else
			indx2 = ipt1:ipt2-1;
		end
		tmppt = i2(ipt2);

% traverse polygon 1 until intersection point is reached
		itmp = find(i1==tmppt);			ipt1 = itmp(1);
		itmp = find(i1(ipt1+1:end));	ipt2 = ipt1+itmp(1);
		z = [z; find(i0==tmppt)];
		if (x1(ipt1)==x1(ipt2) & y1(ipt1)==y1(ipt2)) & (ipt2-ipt1)==1
			indx1 = [];
		else
			indx1 = ipt1:ipt2-1;
		end
		tmppt = i1(ipt2);

% record path traversed thus far
		x = [x; x2(indx2); x1(indx1)];
		y = [y; y2(indx2); y1(indx1)];

% end of first intersection pair - record end point
		endpt = tmppt;

	end

% throw away non 2-d data (point and line)
% store valid data
	if length(x)>2
		count = count + 1;	% contour counter
		[x,y] = cleandata([x; x(1)],[y; y(1)]);
		xps{count,1} = x;
		yps{count,1} = y;
	end
	i0(z) = [];  % remove used intersection point

end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品销魂美女一区二区三区| 一本高清dvd不卡在线观看| 一区二区三区四区不卡在线| 日韩一区二区三区在线观看 | 日韩电影免费一区| 久久久精品免费免费| 91在线视频网址| 91丨porny丨在线| 91亚洲精华国产精华精华液| 国产成人啪午夜精品网站男同| 午夜婷婷国产麻豆精品| 亚洲精品国产一区二区三区四区在线| 久久婷婷成人综合色| 国产午夜精品久久久久久免费视| 久久午夜老司机| 国产亚洲短视频| 欧美va日韩va| 激情久久五月天| 国产91丝袜在线18| 国产精品一区二区久久精品爱涩| 麻豆91在线播放免费| 日本道免费精品一区二区三区| 欧美经典三级视频一区二区三区| 天堂午夜影视日韩欧美一区二区| 色天使色偷偷av一区二区| 国产三级欧美三级| 国产suv精品一区二区6| 久久综合色一综合色88| 极品少妇xxxx精品少妇偷拍| 国产91精品入口| 不卡欧美aaaaa| 欧美视频一区二区三区四区| 欧美美女网站色| 久久综合久久综合九色| 日韩毛片视频在线看| 午夜精品123| 国产凹凸在线观看一区二区| 色菇凉天天综合网| 精品三级在线观看| 亚洲一区二区三区四区在线观看| 亚洲午夜激情网页| 美女网站一区二区| 在线日韩一区二区| 国产精品福利一区| 99久久亚洲一区二区三区青草 | 国产在线国偷精品免费看| 成人黄色在线视频| 久久精品人人做人人综合| 亚洲亚洲人成综合网络| 在线观看网站黄不卡| 337p日本欧洲亚洲大胆色噜噜| 亚洲曰韩产成在线| www.欧美精品一二区| 久久久久综合网| 青青草原综合久久大伊人精品| 欧美亚洲高清一区二区三区不卡| 日本一区二区久久| 不卡一区二区三区四区| 欧美亚一区二区| 国产精品久久福利| 一道本成人在线| 日本sm残虐另类| 亚洲私人影院在线观看| 欧洲精品视频在线观看| 国产一区二区美女诱惑| 亚洲欧美综合在线精品| 日韩欧美国产系列| 国产夫妻精品视频| 亚洲综合色区另类av| 精品成人在线观看| 色呦呦网站一区| 国产成人在线视频网站| 偷拍亚洲欧洲综合| 亚洲人成在线观看一区二区| 精品国一区二区三区| 欧美日韩中文字幕精品| 懂色av一区二区夜夜嗨| 男女男精品视频| 调教+趴+乳夹+国产+精品| 国产精品白丝在线| 国产午夜亚洲精品理论片色戒| 在线成人免费观看| 欧美色图天堂网| 99久久伊人精品| 99久久精品免费看| 国产91在线|亚洲| 懂色av中文字幕一区二区三区| 精品一区二区在线免费观看| 免费不卡在线视频| 秋霞午夜鲁丝一区二区老狼| 欧美v日韩v国产v| 中文字幕一区免费在线观看| 91成人国产精品| 久久精工是国产品牌吗| 亚洲乱码日产精品bd| 国产日韩亚洲欧美综合| 中文字幕av一区二区三区免费看| 日韩美一区二区三区| 在线不卡a资源高清| 精品裸体舞一区二区三区| 欧美一二三区在线| 久久久噜噜噜久久人人看| 国产精品久久久久久久岛一牛影视 | 99免费精品在线观看| 偷拍一区二区三区四区| 日韩欧美一区二区三区在线| 久久影音资源网| 亚洲午夜一区二区三区| 国产经典欧美精品| 在线播放中文一区| 99久久国产综合色|国产精品| 成人aaaa免费全部观看| 99精品黄色片免费大全| 色综合色综合色综合| 在线不卡一区二区| 欧美乱熟臀69xxxxxx| 久久综合网色—综合色88| 日韩一级欧美一级| 欧美一区在线视频| 欧美zozozo| 一区二区三区免费网站| 日本不卡不码高清免费观看| 国产91丝袜在线播放0| 欧洲精品中文字幕| 国产欧美日韩不卡| 石原莉奈在线亚洲三区| 成人av在线播放网站| 91蜜桃在线观看| 精品国产乱码久久久久久夜甘婷婷 | 麻豆一区二区三| av一区二区三区| 日韩精品一区二区三区视频在线观看| 日本一区二区免费在线观看视频| 亚洲午夜久久久久久久久电影网| 精品一区二区三区在线视频| 成人免费视频一区二区| 欧美综合色免费| 亚洲裸体在线观看| 成人美女视频在线看| 精品国产乱码久久久久久久| 日韩成人一区二区三区在线观看| 欧美午夜精品理论片a级按摩| 欧美videossexotv100| 精品亚洲aⅴ乱码一区二区三区| 色综合久久久久网| 亚洲精品国产第一综合99久久| 日韩国产在线观看一区| 日韩经典中文字幕一区| 国产麻豆精品久久一二三| 久久久青草青青国产亚洲免观| 美国欧美日韩国产在线播放| 欧美刺激午夜性久久久久久久| 秋霞国产午夜精品免费视频| 日韩欧美一卡二卡| 国内精品国产成人| 国产精品久久久久久一区二区三区| hitomi一区二区三区精品| 一区二区成人在线| 欧美大片国产精品| 岛国精品一区二区| 综合自拍亚洲综合图不卡区| 不卡视频一二三| 亚洲综合在线视频| 欧美浪妇xxxx高跟鞋交| 香蕉乱码成人久久天堂爱免费| 777亚洲妇女| 成人免费高清视频| 日韩综合在线视频| 亚洲丝袜精品丝袜在线| 欧美精品一区二| 欧美男生操女生| 91在线国产福利| 国产成人久久精品77777最新版本| 亚洲免费毛片网站| 国产亚洲综合在线| 日韩精品专区在线影院观看| 9人人澡人人爽人人精品| 激情综合网天天干| 午夜私人影院久久久久| 一区二区三区丝袜| 一区二区中文视频| 国产精品福利一区| 欧美国产一区在线| 日韩免费观看2025年上映的电影| 成人av在线资源网| 成人免费毛片app| 狠狠色狠狠色综合| 亚洲午夜激情网站| 亚洲天堂成人在线观看| 亚洲欧洲韩国日本视频 | 欧美写真视频网站| 99免费精品在线| 色哟哟日韩精品| 首页国产丝袜综合| 亚洲成年人网站在线观看| 亚洲色图视频免费播放| 免费国产亚洲视频| av一区二区久久| 91精品国产福利在线观看| 国产日韩欧美亚洲|