⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dopoints.m

📁 一些制作正交曲线网格的matlab源程序
💻 M
字号:
function theResult = dopoints(self)% seagrid/dopoints -- Compute and draw points.%  dopoints(self) draws the points associated%   with self, a "seagrid" object. % Copyright (C) 1999 Dr. Charles R. Denham, ZYDECO.%  All Rights Reserved.%   Disclosure without explicit written consent from the%    copyright owner does not constitute publication. % Version of 21-Apr-1999 09:03:33.% Updated    28-Aug-2000 15:00:03.if nargout > 0, theResult = self; endif nargin < 1, help(mfilename), return, end% Initialize.thePoints = psget(self, 'itsPoints');if length(thePoints)  < 4, return, endx = zeros(size(thePoints));y = zeros(size(thePoints));theTags = cell(size(thePoints));theCornerTag = psget(self, 'itsCornerTag');theEdgePointTag = psget(self, 'itsEdgePointTag');theCorners = [];   % Corner indices.theEraseMode = psget(self, 'itsEraseMode');theButtonDownFcn = 'psevent down';thePointFlag = psget(self, 'itsPointFlag');theCornerColor = psget(self, 'itsCornerColor');theCornerMarker = psget(self, 'itsCornerMarker');theEdgeColor = psget(self, 'itsEdgeColor');theEdgeMarker = psget(self, 'itsEdgeMarker');theMarkerSize = get(0, 'DefaultLineMarkerSize');theMarkerSize = 15;theMarkerSize = 9;% Get the xy data and corner-point indices.[m, n] = size(thePoints);if min(size(thePoints)) == 1	for k = 1:length(thePoints)		x(k) = get(thePoints(k), 'XData');		y(k) = get(thePoints(k), 'YData');		theTags{k} = get(thePoints(k), 'Tag');		switch theTags{k}		case 'corner-point'			theCorners = [theCorners k];   % #1 is always a theCorners-point.		otherwise		end	endelse	x = thePoints(:, 1); x = x(:).';	y = thePoints(:, 2); y = y(:).';	t = thePoints(:, 3); t = t(:).';	theCorners = find(t);	theTags = cell(size(t));	for k = 1:length(t)		switch t(k)		case 0			theTags{k} = theEdgePointTag;		otherwise			theTags{k} = theCornerTag;		end	end	thePoints = zeros(size(x));enddelete(findobj('Type', 'line', 'Tag', theEdgePointTag))delete(findobj('Type', 'line', 'Tag', theCornerTag))% Delete old points.  We need to recreate the points%  to keep the screen from flashing, which would occur%  if we were to use "bringtofront" instead.% Draw new points.thePoints = zeros(1, length(x));for k = 1:length(x)	hold on	thePoints(k) = plot(x(k), y(k), 'EraseMode', theEraseMode);	hold off	theColor = theEdgeColor;	theMarker = theEdgeMarker;	if any(k == theCorners)		theColor = theCornerColor;		theMarker = theCornerMarker;		if k == 1, theMarker = '*'; end	end	set(thePoints(k), 'Marker', theMarker, ...			'Color', theColor, ...			'Tag', theTags{k})end	set(thePoints(theCorners), 'MarkerFaceColor', theColor)		psset(self, 'itsPoints', thePoints)switch thePointFlagcase 0	theVisible = 'off';otherwise	theVisible = 'on';endset(thePoints, 'ButtonDownFcn', theButtonDownFcn, ...				'LineStyle', 'none', 'MarkerSize', theMarkerSize, ...				'UserData', thePoints, 'Visible', theVisible)if nargout > 0, theResult = self; end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -