mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monday, April 30, 2007

Perl 펄] 디카용 렌즈, 35mm 필카 렌즈, 초점 거리 환산, 변환; DSLR Focal Length Convert


디카(DSLR) 전용 렌즈와, 옛날식 필카 렌즈의 초점 거리를 상호 환산하는 방법입니다. 물론 디카용 렌즈 초점 거리에 약 1.5배를 하면, 필카용 렌즈 초점 거리로 환산되지만, 더 정밀하게 구하기 위해서 이 프로그램을 만들었습니다. 줌 렌즈의 경우, 양 극단의 값과 함께, 초점 눈금들의 값도 포함했습니다.

우선 디카의 필름에 해당하는 CCD나 CMOS의 대각선 길이를 구해야 하는데, 이것은 제품마다 약간의 차이가 있습니다.

Nikon D40X 의 CCD 의 면적은 "23.6 x 15.8mm" 이고 대각선 길이는 28.4mm 인데, 이것을 기준으로 했습니다.

캐논 등 다른 제품이라면 그 제품의 CCD/CMOS 면적을
sqrt(23.6**2 + 15.8**2)
이런 공식에서 변경해 주면 됩니다.

디카용 렌즈와 필카용 렌즈 초점거리 환산
소스 파일명: example.pl
(※ 스크롤 박스 사용법: 박스 안을 마우스로 클릭한 후, 키보드의 좌우 화살표키를 누르면 양옆으로 움직일 수 있습니다. 박스에서 다시 나오려면, 박스 바깥의 아무곳이나 클릭하면 됩니다.)
#!/usr/bin/perl
use strict; use warnings;

  my $diagonalLength_35mm = sqrt(36**2 + 24**2);
  my $diagonalLength_dc = sqrt(23.6**2 + 15.8**2);
  my $ratio = $diagonalLength_35mm / $diagonalLength_dc;


  print "* 35mm 필카 필름의 대각선 길이 : ", $diagonalLength_35mm, " mm\n";
  # 43.2666153055679

  print "* 디카 CCD/CMOS의 대각선 길이  : ", $diagonalLength_dc, " mm\n";
  # 28.4007042166211

  print "* 위의 두 값들의 비율          : ", $ratio, "\n";
  # 1.52343459428188




  # 디카 전용 니콜(Nikkor) 렌즈의, 초점 거리와 줌 렌즈의 초점 눈금들:
  # 현재 "30mm / 10-20mm / 18-125mm / 50-150mm" 는 시그마 렌즈
  my @focalLength_dc = ( 10, 12, 15, 17, 18, 20, 24, 28, 30, 35, 45, 50, 55, 70, 85, 105, 125, 135, 200 );

  print "\n\n\n디카 렌즈를 필카 렌즈로 환산하면?\n";
  print "=================================\n";
  foreach ( @focalLength_dc ) {
    printf("%3d mm => %7.2f mm\n", $_, $_ * $ratio);
  }




  # 필카용 니콜(Nikkor) 렌즈의 초점 거리와 줌 렌즈의 초점 눈금들:
  # "25mm" 는, 니콘용 칼 짜이스 렌즈
  my @focalLength_35mm =
    ( 14, 17, 18, 20, 24, 25, 28, 35, 50, 55, 58, 60, 70, 80, 85, 100, 105, 120, 135, 180, 200, 300, 400, 500, 600, 800, 1000 );

  print "\n\n\n필카 렌즈를 디카에 붙이면?\n";
  print "==========================\n";
  foreach ( @focalLength_35mm ) {
    printf("%4d mm => %8.2f mm\n", $_, $_ * $ratio);
  }



위의 소스의 출력 결과는 여기에 도표로 만들어져 있습니다: ▶▶ 디카 전용 렌즈 / 35mm필카 렌즈, 초점 거리 환산표/변환표; Nikon DX Format




tag: perl
Perl | 펄

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top