*문자에 입체감 주기

Effect->Perspective->Bevel Alpha

*문자 깨트리기

Effect->Simulation->CC Pixel Polly

 -Gravity:중력

 -Grid Spacing:조각정도

 -Force Center:힘의 방향

 -Direction Random:방향

 -Speed Random:속도

*문자 컬러바꾸기

Effect->Stylize->Glow

*문자를 둥글게

Effect->Blur&Sharpen->Fast Blur

*2D를 3D로 바꾸기

정육면체 아래 체크박스에 체크를 하면 아래 x좌표,y좌표 외에 한 개의 좌표가 더 생긴다.

*카메라 이동하기

Layer->new->Camera(카메라 생성)

Camera->Transform

 -Position:카메라 위치이동

 -Point of insert:2900정도주면 카메라 반대편으로 이동안함


'컴퓨터공학부 > 영상특수효과' 카테고리의 다른 글

오늘 배운거~!  (0) 2010.11.09
라인 애니메이션 만들기  (0) 2010.11.02
2010년 10월 12일 화요일  (0) 2010.10.12
선문대 영상로고 (Atfer Effect CS3)  (0) 2010.10.05
2010년 9월 28일 화요일  (0) 2010.10.05

 

*설정을 잘못하였을때 초기화 하는방법
Window->Workspace->Reset "Standard"->Discard Changes

*import하는방법

import->File->열기->(위에창이뜨면)Composition-CroppedLayers

 

Position-위치 이동

Scale-크기 변경

Rotation-회전

Opacity-불투명도


*포토샵으로 만들어진 문자를 다시 문자로 바꾸기

 Layer->Convert to Editable Text 선택


'컴퓨터공학부 > 영상특수효과' 카테고리의 다른 글

오늘 배운거~!  (0) 2010.11.09
라인 애니메이션 만들기  (0) 2010.11.02
2010년 10월 12일 화요일  (0) 2010.10.12
선문대 영상로고 (Atfer Effect CS3)  (0) 2010.10.05
2010년 10월 5일 화요일  (0) 2010.10.05

'기타 > C' 카테고리의 다른 글

timeSetEvent  (0) 2012.08.20
C언어 작업관리자 구현중  (0) 2012.08.19
도서관리 프로그램  (0) 2012.07.03


1.HelloSDK예제를 실행시 윈도우가 두개 나타나도록 수정하시오.단 하나는 최대화 상태로, 다른 하나는 최소화 상태로 실행된다.

hwnd = CreateWindow("HelloClass", "HelloSDK", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
hwnd1 = CreateWindow("HelloClass", "HelloSDK", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
ShowWindow(hwnd1, SW_SHOWMINIMIZED);

2.HelloMFC예제를 실행시 윈도우가 두개 나타나도록 수정하시오.단 하나는 최대화 상태로, 다른 하나는 최소화 상태로 실행된다.

m_pMainWnd = new CMainFrame;
m_pMainWnd1 = new CMainFrame;
m_pMainWnd->ShowWindow(SW_SHOWMINIMIZED);
m_pMainWnd1->ShowWindow(SW_SHOWMAXIMIZED);

3.HelloMFC예제를 마우스 왼쪽 한번 클릭 대신 더블 클릭 때 메시지 박스가 나타나도록 수정하시오.단,메시지 맵을 사용하지 않고 가상함수를 상속하는 방식으로 처리한다.
virtual BOOL PreTranslateMessage(MSG* pMsg);
...
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
 if (pMsg->message == WM_LBUTTONDBLCLK)
 {
  MessageBox("마우스더블클릭.", "마우스 메시지");
  return TRUE;
 }
 return CFrameWnd::PreTranslateMessage(pMsg);
}


2. Console 예제를 수정하여, 다음 표의 데이터를 보관한다. 그리고 이름을 입력하면 키와 몸무게를 출력하라.

 

이름

(cm)

몸무게(kg)

홍길동

172

72

박철수

164

67

오영희

166

51

구오성

182

80

김순희

159

48

최성주

177

69

신여정

172

51

 

보통 맵을 사용하는 것과 동일하지만, 키 외에 저장되는 데이터가 하나 이상이므로 구조체를 사용해야 한다. 따라서 PHYSIQUE 라는 구조체를 사용하여 CMapStringToPtr 객체에 저장한 후, 입력한 이름을 검색하여 해당 키와 몸무게를 출력한다. CMapStringToPtr 객체에 데이터를 저장할 때 new 연산자를 사용하여 메모리를 할당하므로, 프로그램을 종료할 때 반드시 메모리를 모두 해제해 주어야 한다.

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])

{

            

             else

             {

                     CMapStringToPtr mapData;

 

                     mapData["홍길동"] = new PHYSIQUE(172, 72);

                     mapData["박철수"] = new PHYSIQUE(164, 67);

                     mapData["오영희"] = new PHYSIQUE(166, 51);

                     mapData["구오성"] = new PHYSIQUE(182, 80);

                     mapData["김순희"] = new PHYSIQUE(159, 48);

                     mapData["최성주"] = new PHYSIQUE(177, 69);

                     mapData["신여정"] = new PHYSIQUE(172, 51);

 

                     cout << "이름을 입력하면 키와 몸무게를 알 수 있습니다" << endl;

 

                     TCHAR szName[100];

                     CString strName;

                     void *pData;

 

                     cin >> szName;

                     strName = szName;

 

                     if (mapData.Lookup(strName, pData) == TRUE)

                     {

                                PPHYSIQUE pphysique = (PPHYSIQUE)pData;

                                cout << (LPCTSTR)strName << "의 키: " << pphysique->uiHeight;

                                cout << ", 몸무게: " << pphysique->uiWeight << endl;

                     }

                     else

                                cout << "존재하지 않는 이름입니다" << endl;

 

                     POSITION pos = mapData.GetStartPosition();

                     while (pos)

                     {

                                mapData.GetNextAssoc(pos, strName, pData);

                                delete pData;

                     }

             }

            

}


MFC 템플릿을 사용하기 위해 다음과 같이 afxtempl.h 헤더 파일이 필요하다. PHYSIQUE 는 키와 몸무게를 UINT 멤버로 포함하는 구조체다.

#include "afxtempl.h"

 

typedef struct tagPHYSIQUE

{

           tagPHYSIQUE() {

           };

           tagPHYSIQUE(UINT uiH, UINT uiW)

                     : uiHeight(uiH), uiWeight(uiW) {

           };

 

           UINT    uiHeight;

           UINT    uiWeight;

 

} PHYSIQUE, *PPHYSIQUE;


컴포넌트(component) 
   레이블, 버튼이나 텍스트 필드와 같은 GUI를 작성하는 기본적인 빌딩 블록을 의미 하는 것으로 시스템에서는 컨트롤 (control)이라고 부른다.
AWT(Abstract Windows Toolkit)
  운영 체제가 제공하는 자원을 이용하여 컴포넌트를 생성한다.
Swing(AWT보다 발전한 클래스)
  컴포넌트가 자바로 작성되어 있기 때문에 어떤 플랫폼에서도 일관된 화면을 보여줄 수 있다.
  특징 : JFC(Java Foundation Class)의 일부로 에플리케이션에 그래픽 사용자 인터페이스, 풍부한 그래픽 기능, 다양한 언어와 다양한 입력장치들을 지원한다.

컨테이너
 자바가 제공하는 컴포넌트는 크게 기본 컴포넌트와 컨테이너 컴포넌트로 나누어진다. 컨테이너란 다른 컴포넌트들을 내부에 넣을 수 있는 컴포넌트를 의미한다.
1.최상위 컨테이너
 절대 다른 컨테이너 안에 포함될 수 없는 컨테이너, 프레임(JFrame),다이알로그(JDialog),애플릿(JApplet)
2.일반 컨테이너
 다른 컨테이너 안에 포함 될 수 있는 컨테이너, 패널(JPanel),스크롤 페인(JScrollPane)
GUI 작성 절차
 
최상위 컨테이너 생성->컴포넌트 추가

프레임 생성하기 #1
import javax.swing.*;
public class FrameTest
{
  public static void main(String args[])
  {
        JFrame f=new JFrame("2006242011김동영");
        f.setSize(300,200);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true); //화면에 띄우기
  }
}
프레임 생성하기 #2
import javax.swing.*;
public class FrameTest2 extends JFrame
{
    public FrameTest2()
    {
        setSize(300,200);
        setTitle("2006242011김동영");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
    public static void main(String args[])
    {
        FrameTest2 f=new FrameTest2();
    }
}

 프레임 생성하기 #3
import javax.swing.*;
public class MyFrame extends JFrame
{
   
    public MyFrame()
    {
        setSize(300,200);
        setTitle("2006242011김동영");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
}


public class FrameTest3
{
   public static void main(String args[])
   {
       MyFrame f=new MyFrame();
    }
}

컴포넌트 생성 및 추가#1
import javax.swing.*;
import java.awt.*; //FlowLayout class 사용하기위해
public class FrameTest2 extends JFrame
{
    public FrameTest2()
    {
        JButton b=new JButton("버튼"); //버튼을 생성
       
JPanel p=new JPanel();
        p.add(b); //패널에 버튼추가
        this.add(p); //패널을 프레임에 추가
        setSize(300,200); //프레임 크기설정
        setTitle("2006242011김동영");
        setLayout(new FlowLayout()); //프레임의 배치 관리자 설정
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
    public static void main(String args[])
    {
        FrameTest2 f=new FrameTest2();
    }
}
 
컴포넌트 생성 및 추가#2
import javax.swing.*;
import java.awt.*; //FlowLayout class 사용하기위해
public class FrameTest2 extends JFrame
{
    public FrameTest2()
    {
        JLabel l=new JLabel("안녕하세요");
        JButton b=new JButton("버튼");
        JLabel m=new JLabel();
        m.setText("김동영");
        JTextField t=new JTextField("123456789");      
        JPanel p=new JPanel();
        p.add(l);
        p.add(b);
        p.add(m);
        p.add(t);
        this.add(p);
        setSize(300,200);
        setTitle("2006242011김동영");
        setLayout(new FlowLayout()); //FlowLayout:위치를 잡아주는 객체
       
        m.setText(t.getText());
       
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //화면에 띄우기
    }
    public static void main(String args[])
    {
        FrameTest2 f=new FrameTest2();
    }
}
 
 

+ Recent posts