


vb_make_inner_sphere
[V,F,xx,X0] = vb_make_inner_sphere(Vox,Nvertex,mode)
--- Input
Vox : surface coordinate
Nvertex : Number of sphere vertex to be made
mode = 0 : min radius of Vox
= 1 : mean radius of Vox
rate : rate factor of radius
--- Output
V : vertex
F : patch
xx : normal vector of sphere
X0 : center of sphere
Made by M. Sato 2007-3-16
Copyright (C) 2011, ATR All Rights Reserved.
License : New BSD License(see VBMEG_LICENSE.txt)

0001 function [V,F,xx,X0] = vb_make_inner_sphere(Vox,Nvertex,mode,rate) 0002 % vb_make_inner_sphere 0003 % [V,F,xx,X0] = vb_make_inner_sphere(Vox,Nvertex,mode) 0004 % --- Input 0005 % Vox : surface coordinate 0006 % Nvertex : Number of sphere vertex to be made 0007 % mode = 0 : min radius of Vox 0008 % = 1 : mean radius of Vox 0009 % rate : rate factor of radius 0010 % --- Output 0011 % V : vertex 0012 % F : patch 0013 % xx : normal vector of sphere 0014 % X0 : center of sphere 0015 % 0016 % Made by M. Sato 2007-3-16 0017 % 0018 % Copyright (C) 2011, ATR All Rights Reserved. 0019 % License : New BSD License(see VBMEG_LICENSE.txt) 0020 0021 if ~exist('rate','var'), rate = 1; end; 0022 0023 % 0024 %------- 球面作成 0025 % 0026 X0 = mean(Vox); % 中心点 0027 0028 % Radius of inner sphere 0029 R = (Vox(:,1)-X0(1)).^2 + (Vox(:,2)-X0(2)).^2 + (Vox(:,3)-X0(3)).^2; 0030 0031 if ~exist('mode','var') | mode == 0, 0032 R = mean(sqrt(R))*rate; 0033 else 0034 R = sqrt(min(R))*rate; 0035 end 0036 0037 % Unit sphere 0038 [F,xx] = vb_make_fullsphere(Nvertex); 0039 0040 V = [R*xx(:,1)+X0(1), R*xx(:,2)+X0(2), R*xx(:,3)+X0(3)];