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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gear3d.m

?? matlab源代碼,適用于開發(fā)研究,帶來很好的學(xué)習(xí)效果.
?? M
字號(hào):
function gear3d(varargin)
%   GEAR3D   GUI example of 3D gear.
%   GEAR3D will pop up a GUI example of 3D gear. The gear rolls on a geared
%   ground based on the mouse location. It uses the x-location of the mouse
%   pointer for the gear location. Use the arrow keys to change the view.
%   Press SPACEBAR to reset the view. 
%
%   調(diào)用命令示例:
%     GEAR3D('teeth', 30)   - 默認(rèn)值是 50.
%     GEAR3D('spokes', 4)   - 默認(rèn)值是 8.
%     GEAR3D('ratio', 2)    - 默認(rèn)值是 3. 
%   該命令只接受正值的參數(shù)。


% -----------------------------參數(shù)的默認(rèn)數(shù)值-----------------------------------%
% Number of teeth
numteeth  = 50;
% Number of spokes
numspokes = 8;
% Gear ratio 
rr        = 3;
% -----------------------------處理函數(shù)的參數(shù)屬性-----------------------------------%
if mod(nargin, 2) == 1
  error('Optional arguments must come in pairs.');
end
if nargin
  opt = varargin(1:2:end);
  val = varargin(2:2:end);
  validOpts = {'teeth', 'spokes', 'ratio'};
  for iArg = 1:length(opt)
    id = strmatch(lower(opt{iArg}), validOpts);
    if isempty(id)
      error('Invalid option. Valid options: ''teeth'', ''spokes'', ''ratio''');
    else
      switch strmatch(lower(opt{iArg}), validOpts)
        
        case 1
          if isnumeric(val{iArg}) & length(val{iArg}) == 1
            numteeth = round(abs(val{iArg}));
          end
          
        case 2
          if isnumeric(val{iArg}) & length(val{iArg}) == 1
            numspokes = round(abs(val{iArg}));
          end
          
        case 3
          if isnumeric(val{iArg}) & length(val{iArg}) == 1
            rr = round(abs(val{iArg}));
          end
          
      end
    end
  end
end
%------------------------------計(jì)算參數(shù)的數(shù)值--------------------------%
% Gear part radii
r1 = 1;
r2 = 3;
r3 = 10;
r4 = 11;
r5 = 13;
r6 = 12;
% Radius to the center of gear teeth
r = (r5 + r6) / 2;
% Height of gear teeth
h = r5 - r6;
% Radius to the center of ground teeth
l = r * rr;
% Ground radii
l1 = l  - h/2;
l2 = l  + h/2;
l3 = l2 + 2;
%------------------------------定義齒輪對(duì)象的數(shù)據(jù)--------------------------%
[x0,y0,z0]       = cylinder([r6], numteeth*4);  % teeth groove
[x1,y1,z1]       = cylinder([r1, r1, r2, r2, r1], numteeth*4);  % spokes
[x2,y2,z2]       = cylinder([r3, r3, r4, r4, r5, r5, r4, r4, r3], numteeth*4);  % gear teeth
z1([1, 4, 5], :) =  2;
z1(2:3, :)       = -2;
z2([1, 8, 9], :) =  2;
z2(2:3, :)       = -2;
z2(4:5, :)       = -1;
z2(6:7, :)       =  1;
x2(5:6,1:4:end)  = x0(1:2,1:4:end);
x2(5:6,2:4:end)  = x0(1:2,2:4:end);
y2(5:6,1:4:end)  = y0(1:2,1:4:end);
y2(5:6,2:4:end)  = y0(1:2,2:4:end);
%------------------------------定義輪輻對(duì)象的數(shù)據(jù)--------------------------%
interval  = round(length(x1) / numspokes);
for id = 1:4
  x1(3:4, id:interval:end) = x2(1:2, id:interval:end);
  y1(3:4, id:interval:end) = y2(1:2, id:interval:end);
end
%------------------------------定義底面對(duì)象的數(shù)據(jù)--------------------------%
[x3, y3, z3]         = cylinder([l2, l2, l3, l3, l2], numteeth * rr * 4);
[x4, y4, z4]         = cylinder(l1, numteeth * rr * 4);
z3([1 4 5], :)       =  4;
z3([2 3], :)         = -4;
x3([1 2 5], 1:4:end) = x4([1 1 1], 1:4:end);
x3([1 2 5], 2:4:end) = x4([1 1 1], 2:4:end);
y3([1 2 5], 1:4:end) = y4([1 1 1], 1:4:end);
y3([1 2 5], 2:4:end) = y4([1 1 1], 2:4:end);
%------------------------------將底面設(shè)置為半圓-----------------------------%
len            = round(length(x3) / 2);
x3(:, len:end) = [];
y3(:, len:end) = [];
z3(:, len:end) = [];
%------------------------------創(chuàng)建圖形對(duì)象---------------------------------%
fH = findobj('Type', 'figure', 'Tag', 'solidmodelGUI');
if ishandle(fH)
  close(fH);
end
fH = figure(...
  'Name'       , sprintf('3D Gear: View = [%3.0f, %3.0f]', 0, -50), ...
  'NumberTitle', 'off', ...
  'Units'      , 'normalized', ...
  'Position'   , [.1, .1, .8, .8], ...
  'Tag'        , 'solidmodelGUI');
axes(...
  'Units'   , 'normalized', ...
  'Position', [0, .9, 1, .1], ...
  'XLim'    , [-1, 1], ...
  'YLim'    , [-1, 1], ...
  'Visible' , 'off');
text(0, 0, ...
  {'Move the mouse left and right within the figure window to move the gear.',...
    'Use ARROW keys to change the view. SPACE to reset view.'}, ...
  'HorizontalAlignment' , 'center', ...
  'VerticalAlignment'   , 'middle', ...
  'Color'               , 'red');
axH = axes('Units', 'normalized', ...
  'Position', [0, 0, 1, .9]);
%------------------------------繪制齒輪對(duì)象-----------------------------%

%------------------------------繪制齒輪---------------------------------%
gearH(1) = surface(x1,y1,z1, ...
  'EdgeColor', [.3, .3, .3], ...
  'EdgeAlpha',  0, ...
  'FaceColor', [.5, .5, 1]);
%------------------------------繪制輪齒--------------------------------%
gearH(2) = surface(x2,y2,z2, ...
  'EdgeColor', [.3, .3, .3], ...
  'EdgeAlpha', .1, ...
  'FaceColor', [.5, .5, 1]);
%------------------------------繪制底面--------------------------------%
surface(x3,y3,z3, ...
  'EdgeColor', [.3, .3, .3], ...
 'EdgeAlpha', .1, ...
  'FaceColor', [.5, 1, .5], ...
  'FaceAlpha', .5);
%------------------------------設(shè)置圖形的視角---------------------------%
set(axH, 'View', [0, -50]);
axis equal manual off;
set(axH, 'CameraViewAngleMode', 'manual');
%------------------------------添加光源--------------------------------%
light('Position', [50 , 0, -20]);
light('Position', [-50, 0, -20]);
%-----------------------------計(jì)算圖形大小并傳遞參數(shù)---------------------%
sz1 = size(x1);
sz2 = size(x2);
set(fH, ...
  'Visible'              , 'on', ...
  'KeyPressFcn'          , {@myKeyPressFcn, axH}, ...
  'WindowButtonMotionFcn', {@myMotionFcn, gearH, x1, x2, y1, y2, r, l, sz1, sz2});
%------------------------------設(shè)置齒輪的初始位置-------------------------%
myMotionFcn(gcf, [], gearH, x1, x2, y1, y2, r, l, sz1, sz2);

%-----------------myKeyPressFcn函數(shù):?jiǎn)螕舴较蜴I調(diào)整視角--------------------%  
function myKeyPressFcn(obj, edata, axH)
k = get(obj, 'CurrentKey');
aZeL = get(axH, 'View');

switch lower(k)
  case 'uparrow'
    aZeL(2) = min([aZeL(2) + 10,  90]);
  case 'downarrow'
    % -90 doesn't work well when rotated left or right
    aZeL(2) = max([aZeL(2) - 10, -89.9999]);
  case 'leftarrow'
    aZeL(1) = max([aZeL(1) - 10, -90]);
  case 'rightarrow'
    aZeL(1) = min([aZeL(1) + 10,  90]);
  case 'space'
    aZeL    = [0, -50];
end
set(axH, 'View', aZeL);
set(obj, 'Name', sprintf('3D Gear: View = [%3.0f, %3.0f]', aZeL));

%-----------------myMotionFcn函數(shù):使用鼠標(biāo)來調(diào)整齒輪--------------------%  
function myMotionFcn(obj, edata, gearH, x1, x2, y1, y2, r, l, sz1, sz2)
pt = get(obj, 'CurrentPoint');
d = l - r;
x0 = -d + pt(1) * d * 2;
y0 = sqrt(abs(d^2 - x0^2));
th1 = atan2(x0, y0) - pi/2;
th = (th1 - (th1 * (l / r)));
%----------------------------旋轉(zhuǎn)齒輪對(duì)象---------------------------------%

%---------------------------設(shè)置旋轉(zhuǎn)角度距陣------------------------------%
cosa = cos(-th);
sina = sin(-th);
rot  = [cosa, -sina; sina, cosa]';
newxy1   = [x1(:), y1(:)];
newxy2   = [x2(:), y2(:)];
newxy1   = newxy1 * rot;
newxy2   = newxy2 * rot;
newx1    = x0 + reshape(newxy1(:, 1), sz1);
newy1    = y0 + reshape(newxy1(:, 2), sz1);
newx2    = x0 + reshape(newxy2(:, 1), sz2);
newy2    = y0 + reshape(newxy2(:, 2), sz2);
%---------------------------設(shè)置對(duì)象的新位置------------------------------%
set(gearH, {'XData', 'YData'}, {newx1, newy1; newx2, newy2});

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩vs国产vs欧美| 亚洲激情第一区| 国产在线播放一区| www国产成人免费观看视频 深夜成人网| 久久99国产精品久久99| xfplay精品久久| 成人av在线播放网址| 亚洲人123区| 欧美性猛交xxxx黑人交| 蜜臂av日日欢夜夜爽一区| 久久亚洲精品小早川怜子| 成人涩涩免费视频| 亚洲第一二三四区| 欧美成人女星排行榜| www.日韩精品| 亚洲成人免费电影| 精品处破学生在线二十三| 波多野结衣一区二区三区 | 麻豆精品一二三| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品麻豆视频| 欧美日韩一区在线| 国产一区91精品张津瑜| 亚洲视频一区在线| 欧美变态tickling挠脚心| av动漫一区二区| 青椒成人免费视频| 亚洲电影在线播放| 久久久精品中文字幕麻豆发布| 不卡av免费在线观看| 蜜桃视频在线观看一区| 国产精品国产三级国产普通话三级 | 国产精品亚洲成人| 一区二区三区四区蜜桃 | 丁香桃色午夜亚洲一区二区三区| 亚洲精品免费看| 精品成a人在线观看| 91片在线免费观看| 九九九久久久精品| 亚洲国产欧美日韩另类综合| 久久久不卡网国产精品二区| 欧美日韩三级视频| jlzzjlzz亚洲日本少妇| 加勒比av一区二区| 亚洲一区二区欧美激情| 亚洲国产精品成人久久综合一区| 欧美一区二区网站| 色综合天天做天天爱| 国产aⅴ综合色| 日本欧美在线观看| 艳妇臀荡乳欲伦亚洲一区| 国产亚洲婷婷免费| 日韩免费观看高清完整版| 欧美视频在线一区| 日本高清不卡视频| 成人美女在线观看| 国产大陆精品国产| 精品午夜久久福利影院| 三级在线观看一区二区| 一区二区三国产精华液| 亚洲欧美激情小说另类| 国产精品女主播在线观看| 日韩午夜在线播放| 欧美一区二区三区系列电影| 欧美亚洲高清一区二区三区不卡| 91免费视频网| 色综合视频一区二区三区高清| 成人app在线观看| 成人动漫精品一区二区| 成人免费电影视频| 成人小视频在线观看| 丁香天五香天堂综合| 成人黄页在线观看| 丁香桃色午夜亚洲一区二区三区| 国产成人综合在线观看| 国产很黄免费观看久久| 岛国一区二区在线观看| 成人91在线观看| 99久久精品免费看| 一本高清dvd不卡在线观看 | 国产精品18久久久久| 亚洲国产一二三| 亚洲国产成人porn| 亚洲.国产.中文慕字在线| 91美女在线视频| 日本成人在线电影网| 日本视频一区二区三区| 成人丝袜视频网| 欧美一区二区三区四区视频| 国产精品色在线观看| 日本欧美久久久久免费播放网| 成人精品视频一区二区三区尤物| 欧美日韩精品三区| 欧美国产精品一区二区三区| 日韩福利电影在线| 91亚洲国产成人精品一区二三| 精品女同一区二区| 亚洲二区在线视频| 99在线视频精品| 久久久亚洲国产美女国产盗摄| 五月天精品一区二区三区| aaa国产一区| 欧美国产在线观看| 久久精品国产免费看久久精品| 91黄色免费版| 国产精品女主播av| 国产精品99久久久久久宅男| 日韩美一区二区三区| 亚洲精品免费播放| 成人av网址在线| 久久蜜桃一区二区| 蜜桃av一区二区三区| 欧美日韩精品免费观看视频| 亚洲情趣在线观看| 99久久精品国产一区| 久久久.com| 国内精品视频666| 日韩视频免费观看高清完整版| 亚洲国产日韩a在线播放| 精品乱人伦小说| 亚洲国产wwwccc36天堂| 91亚洲精品久久久蜜桃网站 | 午夜影院久久久| 日本韩国欧美在线| 亚洲欧美一区二区久久| 不卡视频免费播放| 国产精品久久久久aaaa| 成人美女视频在线观看| 欧美国产一区二区在线观看| 国产原创一区二区| 久久亚洲捆绑美女| 国产激情偷乱视频一区二区三区| 亚洲精品在线免费播放| 久久精品999| 久久综合久久综合亚洲| 国产一区在线不卡| 国产午夜一区二区三区| 国产馆精品极品| 中文字幕一区二区三中文字幕| 成人国产在线观看| 日韩理论片网站| 欧洲视频一区二区| 亚洲成人av在线电影| 在线综合亚洲欧美在线视频| 麻豆91在线观看| 国产午夜精品一区二区三区四区 | 在线视频中文字幕一区二区| 玉足女爽爽91| 欧美酷刑日本凌虐凌虐| 日韩av电影天堂| wwwwww.欧美系列| 丁香婷婷综合色啪| 樱桃视频在线观看一区| 欧美日韩你懂得| 老司机精品视频导航| 国产喂奶挤奶一区二区三区| av中文字幕一区| 亚洲国产综合91精品麻豆| 日韩一区二区麻豆国产| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品区一区二区三区| 91老师片黄在线观看| 亚洲6080在线| 久久综合久色欧美综合狠狠| jvid福利写真一区二区三区| 亚洲国产精品欧美一二99| 日韩一级免费观看| 成人高清视频免费观看| 一区二区不卡在线视频 午夜欧美不卡在| 欧美日韩亚洲综合| 国产在线精品视频| 夜夜嗨av一区二区三区中文字幕| 欧美不卡在线视频| 99热精品国产| 日本欧洲一区二区| 国产精品欧美一区二区三区| 精品视频999| 国产一区二区不卡在线| 亚洲美女在线一区| 欧美mv和日韩mv国产网站| av网站一区二区三区| 首页综合国产亚洲丝袜| 国产拍揄自揄精品视频麻豆| 欧美日韩免费观看一区三区| 国产精品一区三区| 亚洲影院在线观看| 亚洲国产成人一区二区三区| 91精品欧美综合在线观看最新| 国产成人精品三级麻豆| 午夜精品在线看| 国产精品久久二区二区| 日韩欧美精品在线视频| 在线观看国产91| 成人免费视频caoporn| 青青草国产成人99久久| 亚洲色欲色欲www| 久久众筹精品私拍模特| 欧美日韩mp4| 91免费国产在线| 国产精品一区二区黑丝|