91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: Matlab
  • 標簽: MATLAB??三維??選點??

資源簡介

選擇三維點云的點,返回坐標: H = CLICKA3DPOINT(POINTCLOUD) shows a 3D point cloud and lets the user % select points by clicking on them. The selected point is highlighted % and its index in the point cloud will is printed on the screen. % POINTCLOUD should be a 3*N matrix, represending N 3D points. % Handle to the figure is returned. % % other functions required: % CALLBACKCLICK3DPOINT mouse click callback function % ROWNORM returns norms of each row of a matrix % % To test this function ... % pointCloud = rand(3,100)*100; % h = clickA3DPoint(pointCloud); % % now rotate or move the point cloud and try it again. % (on the figure View menu, turn the Camera Toolbar on, ...) % % To turn off the callback ... % set(h, 'WindowButtonDownFcn','');

資源截圖

代碼片段和文件信息

function?callbackClickA3DPoint(src?eventData?pointCloud)
%?CALLBACKCLICK3DPOINT?mouse?click?callback?function?for?CLICKA3DPOINT
%
%???The?transformation?between?the?viewing?frame?and?the?point?cloud?frame
%???is?calculated?using?the?camera?viewing?direction?and?the?‘up‘?vector.
%???Then?the?point?cloud?is?transformed?into?the?viewing?frame.?Finally
%???the?z?coordinate?in?this?frame?is?ignored?and?the?x?and?y?coordinates
%???of?all?the?points?are?compared?with?the?mouse?click?location?and?the?
%???closest?point?is?selected.
%
%???Babak?Taati?-?May?4?2005
%???revised?Oct?31?2007
%???revised?Jun?3?2008
%???revised?May?19?2009

point?=?get(gca?‘CurrentPoint‘);?%?mouse?click?position
camPos?=?get(gca?‘CameraPosition‘);?%?camera?position
camTgt?=?get(gca?‘CameraTarget‘);?%?where?the?camera?is?pointing?to

camDir?=?camPos?-?camTgt;?%?camera?direction
camUpVect?=?get(gca?‘CameraUpVector‘);?%?camera?‘up‘?vector

%?build?an?orthonormal?frame?based?on?the?viewing?direction?and?the?
%?up?vector?(the?“view?frame“)
zAxis?=?camDir/norm(camDir);????
upAxis?=?camUpVect/norm(camUpVect);?
xAxis?=?cross(upAxis?zAxis);
yAxis?=?cross(zAxis?xAxis);

rot?=?[xAxis;?yAxis;?zAxis];?%?view?rotation?

%?the?point?cloud?represented?in?the?view?frame
rotatedPointCloud?=?rot?*?pointCloud;?

%?the?clicked?point?represented?in?the?view?frame
rotatedPointFront?=?rot?*?point‘?;

%?find?the?nearest?neighbour?to?the?clicked?point?
pointCloudIndex?=?dsearchn(rotatedPointCloud(1:2:)‘?...?
????rotatedPointFront(1:2));

h?=?findobj(gca‘Tag‘‘pt‘);?%?try?to?find?the?old?point
selectedPoint?=?pointCloud(:?pointCloudIndex);?

if?isempty(h)?%?if?it‘s?the?first?click?(i.e.?no?previous?point?to?delete)
????
????%?highlight?the?selected?point
????h?=?plot3(selectedPoint(1:)?selectedPoint(2:)?...
????????selectedPoint(3:)?‘r.‘?‘MarkerSize‘?20);?
????set(h‘Tag‘‘pt‘);?%?set?its?Tag?property?for?later?use???

else?%?if?it?is?not?the?first?click

????delete(h);?%?delete?the?previously?selected?point
????
????%?highlight?the?newly?selected?point
????h?=?plot3(selectedPoint(1:)?selectedPoint(2:)?...
????????selectedPoint(3:)?‘r.‘?‘MarkerSize‘?20);??
????set(h‘Tag‘‘pt‘);??%?set?its?Tag?property?for?later?use

end

fprintf(‘you?clicked?on?point?number?%d\n‘?pointCloudIndex);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2361??2009-11-10?14:54??callbackClickA3DPoint.m
?????文件????????1600??2009-11-10?14:52??clickA3DPoint.m
?????文件????????1332??2009-11-10?15:00??license.txt
?????文件?????????338??2009-11-10?14:51??rowNorm.m

評論

共有 條評論