'▼ 게임개발 ▼ > 게임개발 - 프로그래밍' 카테고리의 다른 글
□ 정규표현식 테스트 페이지 링크 (0) | 2015.01.08 |
---|---|
□ Big-O (0) | 2014.12.09 |
□ 포물선 운동 (0) | 2014.11.24 |
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
□ 정규표현식 테스트 페이지 링크 (0) | 2015.01.08 |
---|---|
□ Big-O (0) | 2014.12.09 |
□ 포물선 운동 (0) | 2014.11.24 |
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
테스트 사이트
regular expression
. : 임의의 문자로 공백도 인정됨
* : 특정형태가 0번이상 반복
+ : 특정형태가 1번이상 반복
? : 특정형태가 1번이하 반복
[] : 한문자의 범위를 지정
- : 한문자의 범위를 지정할때 시작과 끝을 분리
^ : 문자열의 시작
$ : 문자열의 끝
_ : 쉼표 공백 $ ^
regular expression 예제
a.b : aab,acb,a b,a+b
a* : 없음 ,a,aa,aaa,aaaa
(ab)* : 없음,ab,abab,ababab,,
.* : 없음, 어떤 문자열이라도 상관없음
a?bb : bb,abb
[a-z]b : ab,bb,cb,,,zb
as-path에 regular 적용 예
^100$ : 100
100 : 100.100 200.100 200 300
^100 : 100, 100 200, 100 200 300
^100.* : ^100
^$ : 자신의 AS에서 발생시킨것
_100_ : ^100$,100,^100,100$ 를 모두포함
regular expression
. : 임의의 문자로 공백도 인정됨
* : 특정형태가 0번이상 반복
+ : 특정형태가 1번이상 반복
? : 특정형태가 1번이하 반복
[] : 한문자의 범위를 지정
- : 한문자의 범위를 지정할때 시작과 끝을 분리
^ : 문자열의 시작
$ : 문자열의 끝
_ : 쉼표 공백 $ ^
regular expression 예제
a.b : aab,acb,a b,a+b
a* : 없음 ,a,aa,aaa,aaaa
(ab)* : 없음,ab,abab,ababab,,
.* : 없음, 어떤 문자열이라도 상관없음
a?bb : bb,abb
[a-z]b : ab,bb,cb,,,zb
as-path에 regular 적용 예
^100$ : 100
100 : 100.100 200.100 200 300
^100 : 100, 100 200, 100 200 300
^100.* : ^100
^$ : 자신의 AS에서 발생시킨것
_100_ : ^100$,100,^100,100$ 를 모두포함
route-server>show ip bgp regexp _701_
BGP table version is 6457879, local router ID is 12.129.193.235
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 4.0.0.0 199.106.200.1 0 17233 701 3356 i
*> 4.17.225.0/24 199.106.200.1 0 17233 701 11853 64
6 6496 6496 6496 i
*> 4.17.226.0/23 199.106.200.1 0 17233 701 11853 64
6 6496 6496 6496 i
*> 4.17.251.0/24 199.106.200.1 0 17233 701 11853 64
□ 링크 - 해쉬테이블 / 해쉬맵 / 해쉬셋 (+ 쿼터니온) (0) | 2015.03.02 |
---|---|
□ Big-O (0) | 2014.12.09 |
□ 포물선 운동 (0) | 2014.11.24 |
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
binary search tree is a sorted data structure
binary search ree is already sorted.
there will be no need to waste memory or processing time sorting records
Array
Insert = O(1) +(heap allocation overhead)
Search = O(n)
Delete = O(n)
Sorted Array
Insert = O(n)
Search = O(log n)
Delete = O(n)
Linked List
Insert = O(1)
Search = O(n)
Delete = O(n)/O(1)
Sorted List
Insert = O(n)
Search = O(n)
Delete = O(n)/O(1)
Balanced Binary Tree
Insert = O(logN)
Search = O(logN)
Delete = O(logN)
Hash Table (BST) - Using a 'good' hash function
Insert = O(1)
Search = O(1)
Delete = O(1)
http://www.csee.umbc.edu/courses/undergraduate/202/spring07/Lectures/ChangSynopses/modules/m33-big-O/slides.php?print
For functions f(n) and g(n), we say that "f(n) is Big-O of g(n)" if
There exists a constant c > 0 there exists a constant n0 such that
for all n ≥ n0, 0 ≤ f(n) ≤ c * g(n)
We write f(n) = O(g(n)), but the "=" is not the usual meaning.
The intention is to allow us to say
Technically, 101,000,000*n is O(n), but programs with that running time is still very slow.
Asymptotic running times for n items:
Insert | Search | Delete* | |
---|---|---|---|
Arrays | O(1) | O(n) | O(n) |
Sorted Arrays | O(n) | O(log n) | O(n) |
Linked Lists | O(1) | O(n) | O(n)/O(1) |
Sorted Linked Lists | O(n) | O(n) | O(n)/O(1) |
*Running time for deletion from a linked list depends on whether you already have a pointer for the node to be deleted.
Suppose we have n items inserted and do n searches:
If we have all n items before hand, we can sort them all at the same time in O(n log n), plus n * O(log n) for n searches for O(n log n) time total.
If not, we need binary search trees.
For each node in a binary search tree, its left child (if any) holds a smaller number and its right child (if any) holds a larger number.
There are several schemes for maintaining a O(log n) height for a binary search tree n nodes: AVL trees, Red-Black trees, B-trees, 2-3 trees, ...
For such trees:
Using a "good" hash function:
In the worst case, all items have the same hash index and a closed hash table degenerates into an unsorted array.
There are provably good hash functions.
□ 링크 - 해쉬테이블 / 해쉬맵 / 해쉬셋 (+ 쿼터니온) (0) | 2015.03.02 |
---|---|
□ 정규표현식 테스트 페이지 링크 (0) | 2015.01.08 |
□ 포물선 운동 (0) | 2014.11.24 |
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
□ 링크 - 해쉬테이블 / 해쉬맵 / 해쉬셋 (+ 쿼터니온) (0) | 2015.03.02 |
---|---|
□ 정규표현식 테스트 페이지 링크 (0) | 2015.01.08 |
□ Big-O (0) | 2014.12.09 |
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
//■Benchmark
//long start = Time.time;
float n = 0;
for (int i = 0; i < 1000000; i++)
{
n = (Time.deltaTime + Time.smoothDeltaTime + Time.fixedDeltaTime) * 0.333f;
}
xLog.i(CPlayer.me,"term1:" + n);
n = 0;
for (int i = 0; i < 1000000; i++)
{
n = (Time.deltaTime + Time.smoothDeltaTime + Time.fixedDeltaTime) / 3f;
}
xLog.i(CPlayer.me, "term2:" + n);
□ 정규표현식 테스트 페이지 링크 (0) | 2015.01.08 |
---|---|
□ Big-O (0) | 2014.12.09 |
□ 포물선 운동 (0) | 2014.11.24 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
□ Regular expression (0) | 2013.10.17 |
년/월/일' 현태의 날짜 정보를 핸들링 할 수 있도록 제공하는 달력 모양의 UI 컨트롤
예를 들면 매년 28.29,30.31 이런 불편함을 해소하기 위해서 DateTimePcker(=DTP) 컨트롤을 사용한다.
주요속성 | |
Format | 입력 받을 정보의 종류와 형식을 결정 |
MinDate | |
MaxDate | 입력받을 날짜의 범위 |
Value | 사용자가 선택한 날짜와 시간 |
ShowCheckBox | 날짜 옆에 체크박스를 붙여서 날짜 자체의 유효성 검사 |
ShowUpDown | 달력을 표시하지 않고 직접 값을 증감시킴 |
DropDownAlign | DropDOwn되는 달력의 정렬방법을 지정 |
dateTimePicker3.CustomFormat = "MMMM dd,yyyy-dddd";
dateTimePicker3.Format = DateTimePickerFormat.Custom;
TxtResult.AppendText("Custom format 출력 결과");
TxtResult.AppendText(dateTimePicker3.Text);
d | 한 자리 또는 두 자리 날짜입니다. |
dd | 두 자리 날짜입니다. 한 자리로 된 날짜 값 앞에는 0이 옵니다. |
ddd | 세 문자로 된 요일 약어입니다. |
dddd | 요일의 전체 이름입니다. |
h | 12시간 형식의 한 자리 또는 두 자리 시간입니다. |
hh | 12시간 형식의 두 자리 시간입니다. 한 자리로 된 값 앞에는 0이 옵니다. |
H | 24시간 형식의 한 자리 또는 두 자리 시간입니다. |
HH | 24시간 형식의 두 자리 시간입니다. 한 자리로 된 값 앞에는 0이 옵니다. |
m | 한 자리 또는 두 자리 분입니다. |
mm | 두 자리 분입니다. 한 자리로 된 값 앞에는 0이 옵니다. |
M | 달을 나타내는 한 자리 또는 두 자리 숫자입니다. |
MM | 달을 나타내는 두 자리 숫자입니다. 한 자리로 된 값 앞에는 0이 옵니다. |
MMM | 세 문자로 된 달의 약어입니다. |
MMMM | 달의 전체 이름입니다. |
s | 한 자리 또는 두 자리 초입니다. |
ss | 두 자리 초입니다. 한 자리로 된 값 앞에는 0이 옵니다. |
t | 한 문자로 된 A.M./P.M. 약어이며, A.M.은 "A"로 표시됩니다. |
tt | 두 문자로 된 A.M./P.M. 약어이며, A.M.은 "AM"으로 표시됩니다. |
y | 한 자리 연도이며, 2001은 "1"로 표시됩니다. |
yy | 연도의 마지막 두 자리이며, 2001은 "01"로 표시됩니다. |
yyyy | 완전한 형태의 연도이며, 2001은 "2001"로 표시됩니다. |
□ Big-O (0) | 2014.12.09 |
---|---|
□ 포물선 운동 (0) | 2014.11.24 |
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
□ Regular expression (0) | 2013.10.17 |
□ 기타 가물가물 (0) | 2013.10.02 |
iOS도 인앱해킹에서 자유롭지 않습니다.
요즘 거의 모든 게임이 freemium 형태로 배포되고 있습니다.
사용자는 무료로 게임을 다운로드, 설치하여 이용할수 있고, 게임 내에서 결제를 통해 아이템 구매를 하는 방식이죠.
매출이 모두 인앱구매에서 나오기 때문에
인앱구매에 대한 해킹의 대비가 허술하면 그만큼 매출에서 손해를 보게 됩니다.
인앱구매검증시 구매결과가 담긴 영수증에 대해서 애플을 통해 한번더 조회하면 좀 더 안전한 인앱구매기능을 구현할수 있습니다.
① 사용자가 앱에서 인앱구매요청을 합니다. 앱스토어 아이디와 비밀번호를 입력하면 구매요청이 전송됩니다.
② 구매가 승인되면 애플은 해당 주문에 대한 처리결과를 보내줍니다.
대부분 이렇게 2개 단계로 인앱구매를 진행하고 승인된 주문에 대해서 해당 아이템을 게임 내에서 부여받게 됩니다.
좀 더 강화된 보안을 위해서는 전송받은 구매 결과가 유효한 결과인지, 애플서버에 한번더 조회하는 절차를 거치면 됩니다.
그리고 이 절차는 좀 더 안전하게 하기 위해 원격지의 서버를 통해 진행하는것이 좋습니다.
③ ②에서 전송받은 주문정보를 원격지의 서버로 보냅니다.
④ 원격지의 서버는 주문정보를 애플로 조회요청합니다.
이 내용은 애플 개발자 문서에도 정리되어 있습니다.
⑤ 애플로부터 조회요청한 결과를 받아 해당 주문이 유효한것으로 판정되면 원격지서버는 해당 주문에 대한 처리를 합니다. 예를 들면 해당 회원의 코인이나 아이템을 지급한다던가 하는 것들이죠.
⑥ 해당 주문처리가 모두 완료되면 원격지의 서버는 해당 사용자에게 최종 처리결과를 통보하면 됩니다.
iOS에서의 인앱방지는 위와 같은 절차로 진행하시면 됩니다.
해당 기능을 도와주는 라이브러리도 이미 나와있네요
□ 포물선 운동 (0) | 2014.11.24 |
---|---|
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ Regular expression (0) | 2013.10.17 |
□ 기타 가물가물 (0) | 2013.10.02 |
□ 동적 프로그래밍(Dynamic Programming) (0) | 2013.10.02 |
case 0: data.bonus_score=1; data.bonus_coin=1; data.start=0; data.depth=200000; break;
case 1: data.bonus_score=2; data.bonus_coin=1; data.start=200000; data.depth=240000; break;
case 2: data.bonus_score=2; data.bonus_coin=2; data.start=440000; data.depth=288000; break;
case 3: data.bonus_score=3; data.bonus_coin=2; data.start=728000; data.depth=345600; break;
case 4: data.bonus_score=3; data.bonus_coin=3; data.start=1073600; data.depth=414720; break;
──────────────────────────────
연속된 문자열에서 특정데이터 추출을 위해,
정규표현식을 사용하여, 특정 데이터를 선택.
──────────────────────────────
[replace]
insert into user_level ([level],bonus_score,bonus_coin,exp_stack,exp_section) values (\1, \2, \3, \5)
\0 은 선택된 문자열 전체.
■ 곱셈과 나눗셈 연산속도 (0) | 2014.05.07 |
---|---|
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
□ 기타 가물가물 (0) | 2013.10.02 |
□ 동적 프로그래밍(Dynamic Programming) (0) | 2013.10.02 |
□ DAO (Data Access Object) / VO (Value Object) (0) | 2013.07.19 |
오버로딩 시그니쳐 signature
Dangling pointer : 초기화 안 된 포인터 상수
■ C# - DateTimePicker CustomFormat (0) | 2013.12.19 |
---|---|
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
□ Regular expression (0) | 2013.10.17 |
□ 동적 프로그래밍(Dynamic Programming) (0) | 2013.10.02 |
□ DAO (Data Access Object) / VO (Value Object) (0) | 2013.07.19 |
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
동적 프로그래밍(Dynamic Programming)
하나의 대문제(Univ_Problem)는
여러개의 소문제(Sub_Problems)에 대한 결과값을 통해 해결한다.
이 때,
일부 소문제의 결과값을 도출하기 위해
다른 소문제의 결과값을 필요로 하는 경우가 생긴다.
(=중복되는 계산을 요구)
따라서, 하나의 소문제를 해결할 때마다, 결과값을 테이블에 저장하여,
중복되는 계산을 요구하는 경우, 테이블에서 해당 소문제의 결과값을
divide and conquer 기법에서는
분할 객체간에는 독립성을 가지기 때문에, 필요한 경우 합치기만 하면 된다.
dynamic programming 에서는
분할 객체(소문제)간 중복되는 계산을 요구하기도 한다.
피보나치의 경우
"Fn = F(n-1) + F(n-2), (n>=2)" 의 계산에
분할 정복 방법을 적용한다면,
F(10) = F(9) + F(8) 인데
F(9)를 구하기 위해서는 다시 F(8)을 구해야 하기 때문에
중복되는 계한을 요구한다.
동적 프로그래밍에서는
소문제의 해 [ F(8) ]를 표에 저장해 놓으므로,
F(9)의 계산에 필요한 F(8)의 값을 계산후 테이블에 저장하여,
F(10)의 계산에 필요한 F(8)의 값을 요구할 때, 테이블을 참조하여
중복된 계산을 피한다.
[출처] 동적 프로그래밍(Dynamic Programming)이란?|작성자 moonv11
□ 인앱결제 보안강화 플로우 (0) | 2013.11.19 |
---|---|
□ Regular expression (0) | 2013.10.17 |
□ 기타 가물가물 (0) | 2013.10.02 |
□ DAO (Data Access Object) / VO (Value Object) (0) | 2013.07.19 |
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
□ sin cos TABLE (0) | 2013.02.20 |
DAO (Data Access Object)
Data에 접속하는 객체. (DataBase/파일/메모리/네트워크 등)
어떠한 저장소에 데이터를 입력하거나 조회하거나 수정/삭제 처리 담당.
VO (Value Object)
데이터의 값(Value) 그 자체.
□ Regular expression (0) | 2013.10.17 |
---|---|
□ 기타 가물가물 (0) | 2013.10.02 |
□ 동적 프로그래밍(Dynamic Programming) (0) | 2013.10.02 |
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
□ sin cos TABLE (0) | 2013.02.20 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
────────────────────────────────
■[ Create a New Xcode project ]
iOS - application - OpenGL Game
Product Name : 게임이름
Organization : 아이디
Company Iden : 회사.프로젝트
->bundle : 회사.프로젝트.게임이름
데스크탑 - 프로젝트 폴더에 Create
────────────────────────────────
■[ Build ]
space -> iPhone 6.1 Simulator (Target)
Product -> Clean / Build
────────────────────────────────
■[ remove ]
AppDelegate.h ┐
AppDelegate.m │
ViewController.h ├→ move to Trash
ViewController.m │
main.h ┘
────────────────────────────────
■[ copy ] (복사시 모두체크)
□(newGroup)BayabaLib
엔진 헤더파일들
□플젝
AppDelegate.h
AppDelegate.mm
EAGLView.h
EAGLView.mm
ViewController.h
ViewController.mm
MainWindow.xib
ViewController.xib
□Suporting Files
main.m
□Frameworks
libBayabaLib.a
────────────────────────────────
■[ STL 추가 ]
플젝 선택 - Build Phases
Targets - space - Link Binary With Libraries - [ + ]
-> QuartzCore.framework [Add]
────────────────────────────────
■[ info 기본윈도우 설정 ]
Supporting Files -> 프로젝트-Info.plist -> 리스트 우클릭 Add Row
-> Main nib file base name : MainWindow
────────────────────────────────
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■ GameMain ■■
프로젝트폴더 우클릭 - [ New Files ] - CocoaTouch - ObjectiveC Class
- Class GameMain
- Subclass of NSObject
GameMain.h
GameMain.mm (m:ObjectiveC / mm:OC+C)
생성되면 프로젝트 폴더로 이동
#import "GameMain.h"
#import "BayabaLib.h"
#define
- GameInfo 는 삭제됨 (해당 멤버는 전역으로 사용가능)
- &배열
- BOOL
- Random : random();
#import <stdio.h>
int random(int num)
{ return rand()%num;
}
────────────────────────────────
[치환] 찾기
MyRand.nextInt -> [rand] -> ReplaceAll
private -> [ ] ->
System.currentTimeMillis()
timeGetTime()
────────────────────────────────
[GameMain.h]
exturn DoGame();
exturn LoadLogoData();
[ViewController.mm]
#import "GameMain.h"
SetBackGroundColor(xxxxx);
LoadLogoData();
drawFrame
{
ClearScreen();
DoGame();
}
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
임시
────────────────────────────────
[ ViewController.mm ]
1. 선언부에
Sprite loho;
2. 스프라이트 로드
SetBackGroundColor( 1.0f, 1.0f, 1.0f );
logo.LoadSprite("logo.spr");
3. onDrawFrame (1/60)
drawFrame 함수에
{
logo.PutAni(240,400,0,0, FALSE);
}
────────────────────────────────
□ 기타 가물가물 (0) | 2013.10.02 |
---|---|
□ 동적 프로그래밍(Dynamic Programming) (0) | 2013.10.02 |
□ DAO (Data Access Object) / VO (Value Object) (0) | 2013.07.19 |
□ sin cos TABLE (0) | 2013.02.20 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
● MFC - 파일저장 (0) | 2013.01.14 |
PI = 3.141592... (approximately 22/7 = 3.1428)
radians = degress x PI / 180 (deg to rad conversion)
degress = radians x 180 / PI (rad to deg conversion)
Rad | Deg | Sin | Cos | Tan | Csc | Sec | Cot | ||
---|---|---|---|---|---|---|---|---|---|
.0000 | 00 | .0000 | 1.0000 | .0000 | ----- | 1.0000 | ----- | 90 | 1.5707 |
.0175 | 01 | .0175 | .9998 | .0175 | 57.2987 | 1.0002 | 57.2900 | 89 | 1.5533 |
.0349 | 02 | .0349 | .9994 | .0349 | 28.6537 | 1.0006 | 28.6363 | 88 | 1.5359 |
.0524 | 03 | .0523 | .9986 | .0524 | 19.1073 | 1.0014 | 19.0811 | 87 | 1.5184 |
.0698 | 04 | .0698 | .9976 | .0699 | 14.3356 | 1.0024 | 14.3007 | 86 | 1.5010 |
.0873 | 05 | .0872 | .9962 | .0875 | 11.4737 | 1.0038 | 11.4301 | 85 | 1.4835 |
.1047 | 06 | .1045 | .9945 | .1051 | 9.5668 | 1.0055 | 9.5144 | 84 | 1.4661 |
.1222 | 07 | .1219 | .9925 | .1228 | 8.2055 | 1.0075 | 8.1443 | 83 | 1.4486 |
.1396 | 08 | .1392 | .9903 | .1405 | 7.1853 | 1.0098 | 7.1154 | 82 | 1.4312 |
.1571 | 09 | .1564 | .9877 | .1584 | 6.3925 | 1.0125 | 6.3138 | 81 | 1.4137 |
.1745 | 10 | .1736 | .9848 | .1763 | 5.7588 | 1.0154 | 5.6713 | 80 | 1.3953 |
.1920 | 11 | .1908 | .9816 | .1944 | 5.2408 | 1.0187 | 5.1446 | 79 | 1.3788 |
.2094 | 12 | .2079 | .9781 | .2126 | 4.8097 | 1.0223 | 4.7046 | 78 | 1.3614 |
.2269 | 13 | .2250 | .9744 | .2309 | 4.4454 | 1.0263 | 4.3315 | 77 | 1.3439 |
.2443 | 14 | .2419 | .9703 | .2493 | 4.1336 | 1.0306 | 4.0108 | 76 | 1.3265 |
.2618 | 15 | .2588 | .9659 | .2679 | 3.8637 | 1.0353 | 3.7321 | 75 | 1.3090 |
.2793 | 16 | .2756 | .9613 | .2867 | 3.6280 | 1.0403 | 3.4874 | 74 | 1.2915 |
.2967 | 17 | .2924 | .9563 | .3057 | 3.4203 | 1.0457 | 3.2709 | 73 | 1.2741 |
.3142 | 18 | .3090 | .9511 | .3249 | 3.2361 | 1.0515 | 3.0777 | 72 | 1.2566 |
.3316 | 19 | .3256 | .9455 | .3443 | 3.0716 | 1.0576 | 2.9042 | 71 | 1.2392 |
.3491 | 20 | .3420 | .9397 | .3640 | 2.9238 | 1.0642 | 2.7475 | 70 | 1.2217 |
.3665 | 21 | .3584 | .9336 | .3839 | 2.7904 | 1.0711 | 2.6051 | 69 | 1.2043 |
.3840 | 22 | .3746 | .9272 | .4040 | 2.6695 | 1.0785 | 2.4751 | 68 | 1.1868 |
.4014 | 23 | .3907 | .9205 | .4245 | 2.5593 | 1.0864 | 2.3559 | 67 | 1.1694 |
.4189 | 24 | .4067 | .9135 | .4452 | 2.4586 | 1.0946 | 2.2460 | 66 | 1.1519 |
.4363 | 25 | .4226 | .9063 | .4663 | 2.3662 | 1.1034 | 2.1445 | 65 | 1.1345 |
.4538 | 26 | .4384 | .8988 | .4877 | 2.2812 | 1.1126 | 2.0503 | 64 | 1.1170 |
.4712 | 27 | .4540 | .8910 | .5095 | 2.2027 | 1.1223 | 1.9626 | 63 | 1.0996 |
.4887 | 28 | .4695 | .8829 | .5317 | 2.1301 | 1.1326 | 1.8807 | 62 | 1.0821 |
.5061 | 29 | .4848 | .8746 | .5543 | 2.0627 | 1.1434 | 1.8040 | 61 | 1.0647 |
.5236 | 30 | .5000 | .8660 | .5774 | 2.0000 | 1.1547 | 1.7321 | 60 | 1.0472 |
.5411 | 31 | .5150 | .8572 | .6009 | 1.9416 | 1.1666 | 1.6643 | 59 | 1.0297 |
.5585 | 32 | .5299 | .8480 | .6249 | 1.8871 | 1.1792 | 1.6003 | 58 | 1.0123 |
.5760 | 33 | .5446 | .8387 | .6494 | 1.8361 | 1.1924 | 1.5399 | 57 | .9948 |
.5934 | 34 | .5592 | .8290 | .6745 | 1.7883 | 1.2062 | 1.4826 | 56 | .9774 |
.6109 | 35 | .5736 | .8192 | .7002 | 1.7434 | 1.2208 | 1.4281 | 55 | .9599 |
.6283 | 36 | .5878 | .8090 | .7265 | 1.7013 | 1.2361 | 1.3764 | 54 | .9425 |
.6458 | 37 | .6018 | .7986 | .7536 | 1.6616 | 1.2521 | 1.3270 | 53 | .9250 |
.6632 | 38 | .6157 | .7880 | .7813 | 1.6243 | 1.2690 | 1.2799 | 52 | .9076 |
.6807 | 39 | .6293 | .7771 | .8098 | 1.5890 | 1.2868 | 1.2349 | 51 | .8901 |
.6981 | 40 | .6428 | .7660 | .8391 | 1.5557 | 1.3054 | 1.1918 | 50 | .8727 |
.7156 | 41 | .6561 | .7547 | .8693 | 1.5243 | 1.3250 | 1.1504 | 49 | .8552 |
.7330 | 42 | .6691 | .7431 | .9004 | 1.4945 | 1.3456 | 1.1106 | 48 | .8378 |
.7505 | 43 | .6820 | .7314 | .9325 | 1.4663 | 1.3673 | 1.0724 | 47 | .8203 |
.7679 | 44 | .6947 | .7193 | .9657 | 1.4396 | 1.3902 | 1.0355 | 46 | .8029 |
.7854 | 45 | .7071 | .7071 | 1.0000 | 1.4142 | 1.4142 | 1.0000 | 45 | .7854 |
Cos | Sin | Cot | Sec | Csc | Tan | Deg | Rad |
angle (degrees) | 0 | 30 | 45 | 60 | 90 | 120 | 135 | 150 | 180 | 210 | 225 | 240 | 270 | 300 | 315 | 330 | 360 = 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
angle (radians) | 0 | PI/6 | PI/4 | PI/3 | PI/2 | 2/3PI | 3/4PI | 5/6PI | PI | 7/6PI | 5/4PI | 4/3PI | 3/2PI | 5/3PI | 7/4PI | 11/6PI | 2PI = 0 |
sin(a) | (0/4) | (1/4) | (2/4) | (3/4) | (4/4) | (3/4) | (2/4) | (1/4) | (0/4) | -(1/4) | -(2/4) | -(3/4) | -(4/4) | -(3/4) | -(2/4) | -(1/4) | (0/4) |
cos(a) | (4/4) | (3/4) | (2/4) | (1/4) | (0/4) | -(1/4) | -(2/4) | -(3/4) | -(4/4) | -(3/4) | -(2/4) | -(1/4) | (0/4) | (1/4) | (2/4) | (3/4) | (4/4) |
tan(a) | (0/4) | (1/3) | (2/2) | (3/1) | (4/0) | -(3/1) | -(2/2) | -(1/3) | -(0/4) | (1/3) | (2/2) | (3/1) | (4/0) | -(3/1) | -(2/2) | -(1/3) | (0/4) |
[출처] sin, cos, tan table표|작성자 넌소중햇
□ 동적 프로그래밍(Dynamic Programming) (0) | 2013.10.02 |
---|---|
□ DAO (Data Access Object) / VO (Value Object) (0) | 2013.07.19 |
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
● MFC - 파일저장 (0) | 2013.01.14 |
● 시간관련 C (0) | 2012.12.28 |
□ DAO (Data Access Object) / VO (Value Object) (0) | 2013.07.19 |
---|---|
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
□ sin cos TABLE (0) | 2013.02.20 |
● MFC - 파일저장 (0) | 2013.01.14 |
● 시간관련 C (0) | 2012.12.28 |
■ Warning 제외 선행처리 옵션 (1) | 2012.12.17 |
//파일읽기
FILE *fStream;
HANDLE fileSearch;
WIN32_FIND_DATA wfd;
fileSearch = ::FindFirstFileW(_T("다내꺼_전투일지.txt"), &wfd);
if(fileSearch == INVALID_HANDLE_VALUE) errno_t e =_tfopen_s(&fStream, _T("다내꺼_전투일지.txt"), _T("w+, ccs=UNICODE")); //없으면, 생성후 읽기쓰기
else errno_t e =_tfopen_s(&fStream, _T("다내꺼_전투일지.txt"), _T("r, ccs=UNICODE")); //있으면, 읽기만
CString resText(_T(""));
CString temp;
CStdioFile fw(fStream);
while((fw.ReadString(temp))!=NULL) //■한줄씩 전체만큼의 라인 받음.
{
temp.Delete(temp.GetLength()-1,1);
// temp = temp.Mid(temp.
resText += (temp+_T("\r\n"));
}
if(resText.IsEmpty()) resText = _T("Text Line : 45 set.\r\n")
_T("\r\n기억해야 할 것들을 적어주세요.")
_T("\r\n(입력한 내용은 자동저장 됩니다.)")
_T("\r\n\r\n\r\n")
_T("\r\n==============================================")
_T("\r\n[ U R L Link ] www.naver.com")
_T("\r\n[ 네이버 검색 ] 영화순위")
_T("\r\n")
_T("\r\n→ URL or 찾을 키워드 적고,")
_T("\r\n→ 더블클릭(셀지정),")
_T("\r\n→ 우클릭!")
_T("\r\n\r\n 검색하기, 차암~ 쉽죠잉~?")
_T("\r\n==============================================")
_T("\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t")
_T("\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t")_T("\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t")
_T("\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t")_T("\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t");
fw.Close();
this->m_ctrlEdit->SetWindowTextW(resText);
this->ShowWindow(SW_SHOW);
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
---|---|
□ sin cos TABLE (0) | 2013.02.20 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
● 시간관련 C (0) | 2012.12.28 |
■ Warning 제외 선행처리 옵션 (1) | 2012.12.17 |
■ SWAP (0) | 2012.10.24 |
■ 시간관련 C ■
clock_t clock(void) 은 [ CPU time ]
반환값 밀리세컨드
time_t time(time_t *timer) 은 [ 시스템 time ]
반환값 세컨드
time_t aclock;
struct tm *CurrentTime = NULL;
time( &aclock );
CurrentTime = localtime( &aclock );
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
---|---|
□ sin cos TABLE (0) | 2013.02.20 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
● MFC - 파일저장 (0) | 2013.01.14 |
■ Warning 제외 선행처리 옵션 (1) | 2012.12.17 |
■ SWAP (0) | 2012.10.24 |
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
---|---|
□ sin cos TABLE (0) | 2013.02.20 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
● MFC - 파일저장 (0) | 2013.01.14 |
● 시간관련 C (0) | 2012.12.28 |
■ SWAP (0) | 2012.10.24 |
// a = a+b;
// b = a-b;
// a = a-b;
// #define SWAP(a,b) a^= b^= a^= b
// int a = 3; b = 4;
// SWAP(a,b);
Android - 바야바엔진 - 아이폰 포팅 (0) | 2013.02.27 |
---|---|
□ sin cos TABLE (0) | 2013.02.20 |
● fopen() 함수에서 r+, w+ 모드의 차이 파일처리 (0) | 2013.01.14 |
● MFC - 파일저장 (0) | 2013.01.14 |
● 시간관련 C (0) | 2012.12.28 |
■ Warning 제외 선행처리 옵션 (1) | 2012.12.17 |