Optometrika 透镜成像模拟
MATLAB 透镜成像 Optometrika,此程序是模拟透镜等一系列光学元件成像的MATLAB代码,使用MATLAB面向对象的程序设计方法,用户可以自行调用类来获得想要的模拟效果。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-04-21 09:02 Optometrika
目录 0 2017-04-21 09:03 __MACOSXOptometrika
目录 0 2017-04-21 09:03 __MACOSX
文件 15408 2017-03-26 17:40 Optometrika说明.docx
文件 1343 2016-11-30 22:55 Optometrikalicense.txt
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._surface_sag.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._rodrigues_rot.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._refrindx.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._lensmakers_formula.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._lens_dims.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._hist2.m
目录 0 2017-03-26 17:35 OptometrikaOptometrika
文件 6148 2016-11-30 22:55 OptometrikaOptometrika.DS_Store
文件 2479 2016-11-30 22:55 OptometrikaOptometrikaAperture.m
文件 3257 2016-11-30 22:55 OptometrikaOptometrikaAsphericLens.m
文件 11112 2017-03-28 20:47 OptometrikaOptometrikaBench.m
文件 3296 2016-11-30 22:55 OptometrikaOptometrikaConeLens.m
文件 2843 2016-11-30 22:55 OptometrikaOptometrikaCylinderLens.m
文件 12094 2016-11-30 22:55 OptometrikaOptometrikaEye.m
文件 7091 2016-11-30 22:55 OptometrikaOptometrikaFresnelLens.m
文件 3438 2016-11-30 22:55 OptometrikaOptometrikaGeneralLens.m
文件 3880 2016-11-30 22:55 OptometrikaOptometrikaLens.m
文件 4016 2016-11-30 22:55 OptometrikaOptometrikaPlane.m
文件 3062 2016-11-30 22:55 OptometrikaOptometrikaREADME.txt
文件 53504 2016-11-30 22:55 OptometrikaOptometrikaRays.m
文件 3797 2016-11-30 22:55 OptometrikaOptometrikaRetina.m
文件 3883 2016-11-30 22:55 OptometrikaOptometrikaScreen.m
文件 11063 2016-11-30 22:55 OptometrikaOptometrikaSellmeier.glass.refr
文件 1920 2016-11-30 22:55 OptometrikaOptometrikaSurface.m
文件 756 2016-11-30 22:55 OptometrikaOptometrikaaspheric.m
文件 1675 2016-11-30 22:55 OptometrikaOptometrikaasphlens.m
............此处省略180个文件信息
classdef Aperture < Surface
% APERTURE defines a circular opening
%
% Member functions:
%
% a = Aperture( r D ) - object constructor
% INPUT:
% r - 1x3 position vector
% D - 2x1 vector (inner diameter outer diameter)
% OUTPUT:
% a - aperture object
%
% a.display() - displays the aperture a information
%
% draw() - draws the aperture a in the current axes
%
% a.rotate( rot_axis rot_angle ) - rotate the aperture
% INPUT:
% rot_axis - 1x3 vector defining the rotation axis
% rot_angle - rotation angle (radians)
%
% Copyright: Yury Petrov 2016
%
properties
D = [ 1; 2 ]
end
methods
function self = Aperture( ar aD )
self.glass = { ‘air‘ ‘soot‘ };
if nargin == 0
return;
end
self.r = ar;
if size( aD 1 ) < size( aD 2 )
aD = aD‘;
end
self.D = aD;
if size( self.D 1 ) == 1 || self.D(2) < self.D(1)
error( ‘Outer radius has to be larger than the inner radius‘ );
end
end
function display( self )
fprintf( ‘Position: [%.3f %.3f %.3f]
‘ self.r );
fprintf( ‘Orientation: [%.3f %.3f %.3f]
‘ self.n );
fprintf( ‘Diameter in: %.3f
‘ self.D(1) );
fprintf( ‘Diameter out: %.3f
‘ self.D(2) );
end
function h = draw( self color )
nrad = 2;
rad = linspace( self.D(1) / 2 self.D(2) / 2 nrad );
nang = 100;
ang = linspace( 0 2 * pi nang );
[ ang rad ] = meshgrid( ang rad );
y = rad .* cos( ang );
z = rad .* sin( ang );
x = zeros( size( y ) );
S = [ x(:) y(:) z(:) ];
% rotate and shift
if self.rotang ~= 0
S = rodrigues_rot( S self.rotax self.rotang );
end
x(:) = S( : 1 ) + self.r( 1 );
y(:) = S( : 2 ) + self.r( 2 );
z(:) = S( : 3 ) + self.r( 3 );
% draw
c = 0.25 * ones( size( x 1 ) size( x 2 ) 3 );
h = surf( x y z c ‘EdgeColor‘ ‘none‘ ‘FaceLighting‘‘phong‘ ‘FaceColor‘ ‘interp‘ ...
‘AmbientStrength‘ 0.25 ‘SpecularStrength‘ 0.25 );
end
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-04-21 09:02 Optometrika
目录 0 2017-04-21 09:03 __MACOSXOptometrika
目录 0 2017-04-21 09:03 __MACOSX
文件 15408 2017-03-26 17:40 Optometrika说明.docx
文件 1343 2016-11-30 22:55 Optometrikalicense.txt
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._surface_sag.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._rodrigues_rot.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._refrindx.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._lensmakers_formula.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._lens_dims.m
文件 216 2016-11-30 22:55 Optometrika\__MACOSXOptometrika._hist2.m
目录 0 2017-03-26 17:35 OptometrikaOptometrika
文件 6148 2016-11-30 22:55 OptometrikaOptometrika.DS_Store
文件 2479 2016-11-30 22:55 OptometrikaOptometrikaAperture.m
文件 3257 2016-11-30 22:55 OptometrikaOptometrikaAsphericLens.m
文件 11112 2017-03-28 20:47 OptometrikaOptometrikaBench.m
文件 3296 2016-11-30 22:55 OptometrikaOptometrikaConeLens.m
文件 2843 2016-11-30 22:55 OptometrikaOptometrikaCylinderLens.m
文件 12094 2016-11-30 22:55 OptometrikaOptometrikaEye.m
文件 7091 2016-11-30 22:55 OptometrikaOptometrikaFresnelLens.m
文件 3438 2016-11-30 22:55 OptometrikaOptometrikaGeneralLens.m
文件 3880 2016-11-30 22:55 OptometrikaOptometrikaLens.m
文件 4016 2016-11-30 22:55 OptometrikaOptometrikaPlane.m
文件 3062 2016-11-30 22:55 OptometrikaOptometrikaREADME.txt
文件 53504 2016-11-30 22:55 OptometrikaOptometrikaRays.m
文件 3797 2016-11-30 22:55 OptometrikaOptometrikaRetina.m
文件 3883 2016-11-30 22:55 OptometrikaOptometrikaScreen.m
文件 11063 2016-11-30 22:55 OptometrikaOptometrikaSellmeier.glass.refr
文件 1920 2016-11-30 22:55 OptometrikaOptometrikaSurface.m
文件 756 2016-11-30 22:55 OptometrikaOptometrikaaspheric.m
文件 1675 2016-11-30 22:55 OptometrikaOptometrikaasphlens.m
............此处省略180个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)