초성
+ 중성 + 종성 = 한글문자 생성
※ IOS 용
: [세나] 1.6판 도움말 참고
(https://gitden.co.kr/sena-ios-16/)
----------------------------------------------------------------------------
틀린 부분도 있고, 좀더 자세하게 문서 업데이트 합니다. (수정 : 2017/07/10)
=================================
오토마타 구조
=================================
* 확장기능 : 인접 키를 눌러 획 추가 기능 지원
[획 추가] 키 (~)로 다른 자소를 입력하는 방식(ㄱ~ : ㅋ, ㅁ~: ㅂ 등)에서,
위나 아래의 인접 키를 눌러서 [획 추가] 효과를 내는 입력 방식 지원
(획 추가 키 (~) 까지 동선 길이를 줄임과 연타 횟수를 줄이기 위해
바로 위나 아래키를 눌러 입력)
---- ㄱ 키 활용---------
ㄱ = (ㄱ)
ㄲ = (ㄱ) + (ㄱ)
ㅋ = (ㄱ) + (~)
ㅋ = (ㄱ) + ㄱ아래키(ㅁ) : * 확장기능
---- ㅇ 키 활용---------
ㅇ = (ㅇ)
ㅎ = (ㅇ) + (ㅇ)
ㅎ = (ㅇ) + (~)
ㅎ = (ㅇ) + 아래키(ㄴ) : * 확장기능
---- ㅁ 키 활용---------
ㅁ = (ㅁ)
ㅂ = (ㅁ) + (ㅁ)
ㅂ = (ㅁ) + (~)
※ ㅃ은 초성만 지원
ㅃ = (ㅁ) + (ㅁ) + (ㅁ)
ㅃ = (ㅁ) + (~) + (ㅁ) ******* 허용?
ㅍ = (ㅁ) + (ㅁ) + (~)
ㅍ = (ㅁ) + (~) + (~)
ㅍ = (ㅁ) + 위에키(ㄱ) : * 확장기능
---- ㄴ 키 활용---------
ㄴ = (ㄴ)
ㄹ = (ㄴ) + (ㄴ)
※ ㄸ은 초성만 지원
ㄸ = (ㄹ)상태에서 + (~)
ㄸ = (ㄴ) + (ㄴ) + 아래키(ㅅ) : * 확장기능
ㄷ = (ㄴ) + (~)
ㄷ = (ㄴ) + 아래키(ㅅ) : * 확장기능
ㅌ = (ㄷ)상태에서 + (~)
ㅌ = (ㄴ) + 위에키(ㅇ) : * 확장기능
# 종성에서는 다음과 같이 동작
ㄵ = (ㄴ) + (ㅅ)
ㄶ = (ㄴ) + (ㅇ)
---- ㅅ 키 활용---------
ㅅ = (ㅅ)
ㅆ = (ㅅ) + (ㅅ)
※ ㅉ은 초성만 지원
ㅉ = (ㅅ) + (ㅅ) + (~)
ㅉ = (ㅅ) + (ㅅ) + 위에키(ㄴ)
ㅈ = (ㅅ) + (~)
ㅈ = (ㅅ) + 위에키(ㄴ) : * 확장기능
ㅊ = (ㅅ) + (~) + (~)
ㅊ = (ㅅ) + 사선위키(ㅁ) : * 확장기능
ㅊ = (ㅅ) + 위에키(ㄴ) + 위에키(ㄴ) : * 확장기능
--------------------- 오토마타 상세 설명 ---------------
## 초성(닿소리)은
한손 입력기 왼쪽 부분의 5개 글쇠를 눌러서 입력합니다.
- 조성 19자
: 글쇠 오른쪽은 더블클릭하여 입력되는 글자(예: (ㄱ) + (ㄱ) = (ㄲ) )
: 예) (ㅇ) 터치하고 [획 추가] 키 (~)까지 이동하여 누를 필요 없이 아래키를 눌러 같은 효과를 냅니다.
-----------------
(ㄱ)ㄲ (ㅇ) ㅎ
ㅋ ㅎ
-----------------
ㅍ ㅌ
(ㅁ)ㅂㅃ (ㄴ) ㄹ
ㄷ ㄸ
-----------------
ㅊ ㅈ ㅉ
(ㅅ) ㅆ
-----------------
텍스트로 작성하니 어근나는 부분이 있네요. 참고로 이미지로도 첨부합니다.

[ 세벌식 한손 입력기 [세나] 1.6판 도움말 이미지 ]
## 중성(홀소리)은
한손 입력기 가운데 부분의 6개 글쇠를 눌러서 입력합니다.
- 중성 21자
ㅏ = (ㅏ)
ㅐ = (ㅏ) + (ㅣ)
ㅑ = (ㅏ) + (ㅏ)
ㅒ = (ㅏ) + (ㅏ) + (ㅣ)
ㅓ = (ㅓ)
ㅔ = (ㅓ) + (ㅣ)
ㅕ = (ㅓ) + (ㅓ)
ㅖ = (ㅓ) + (ㅓ) + (ㅣ)
ㅗ = (ㅗ)
ㅘ = (ㅗ) + (ㅏ)
ㅙ = (ㅗ) + (ㅏ) + (ㅣ)
ㅚ = (ㅗ) + (ㅣ)
ㅛ = (ㅗ) + (ㅗ)
ㅜ = (ㅜ)
ㅝ = (ㅜ) + (ㅓ)
ㅞ = (ㅜ) + (ㅓ) + (ㅣ)
ㅟ = (ㅜ) + (ㅣ)
ㅠ = (ㅜ) + (ㅜ)
ㅡ = (ㅡ)
ㅢ = (ㅡ) + (ㅣ)
ㅣ = (ㅣ)
## 받침(종성)은
한손 입력기 오른쪽 부분의 5개 글쇠를 눌러서 입력합니다.
기본적인 요령은 위에서 설명한 초성(자음)과 같은 방식입니다.
다만 초성에서는 지원이 되는데 동일하지 않은 부분이 있으니 주위 바랍니다.
- 종성 28자
ㄱ = (ㄱ)
ㄲ = (ㄱ) + (ㄱ)
ㄳ = (ㄱ) + (ㅅ)
ㄴ = (ㄴ) + (ㄴ)
ㄵ = (ㄴ) + (ㅅ) *** (초성 확장 조합과 다름)
ㄶ = (ㄴ) + (ㅇ) *** (초성 확장 조합과 다름)
ㄷ = (ㄴ) + (~)
*
ㄹ = (ㄴ) + (ㄴ)
ㄺ = (ㄴ) + (ㄴ) + (ㄱ)
ㄻ = (ㄴ) + (ㄴ) + (ㅁ)
ㄼ = (ㄴ) + (ㄴ) + (ㅁ) + (ㅁ)
ㄽ = (ㄴ) + (ㄴ) + (ㅅ) *** (초성 확장 조합과 다름)
ㄾ = (ㄴ) + (ㄴ) + (ㄴ)
ㄿ = (ㄴ) + (ㄴ) + (ㅁ) + (ㅁ) + (ㅁ)
ㅀ = (ㄴ) + (ㄴ) + (ㅇ)
ㅁ = (ㅁ)
ㅂ = (ㅁ) + (ㅁ)
ㅂ = (ㅁ) + (~)
ㅄ = (ㅁ) + (ㅁ) + (ㅅ)
ㅅ = (ㅅ)
ㅆ = (ㅅ) + (ㅅ)
ㅇ = (ㅇ)
ㅈ = (ㅅ) + (~)
ㅈ = (ㅅ) + 위에키(ㄴ) : * 확장기능
ㅊ = (ㅅ) + (~) + (~)
ㅊ = (ㅅ) + 사선키(ㅁ) : * 확장기능
ㅊ = (ㅅ) + 위에키(ㄴ) + 위에키(ㄴ) : * 확장기능
ㅋ = (ㄱ) + (~)
ㅋ = (ㄱ) + 아래키(ㅁ) : * 확장기능
ㅌ = (ㄴ) + (~) + (~)
*
ㅍ = (ㅁ) + (~) + (~)
ㅍ = (ㅁ) + (ㅁ) + (~)
ㅍ = (ㅁ) + 위에키(ㄱ) : * 확장기능
ㅎ = (ㅇ) + (ㅇ)
ㅎ = (ㅇ) + (~)
ㅎ = (ㅇ) + 아래키(ㄴ) : * 확장기능
---------------------------------------------------
16키로 동작합니다. 제가 안드로이드 개발은 잘 몰라서 그 이상은 힘들듯합니다.
참고로 제가 사용했던 코드입니다.
// -----<초성>
short HangulJamo1100_Table[19] =
{
0x1100, // (0) : ㄱ -- 0x3131 (호환 자음)
0x1101, // (1) : ㄲ -- 0x3132
0x1102, // (2) : ㄴ -- 0x3134
0x1103, // (3) : ㄷ -- 0x3137
0x1104, // (4) : ㄸ -- 0x3138
0x1105, // (5) : ㄹ -- 0x3139
0x1106, // (6) : ㅁ -- 0x3141
0x1107, // (7) : ㅂ -- 0x3142
0x1108, // (8) : ㅃ -- 0x3143
0x1109, // (9) : ㅅ -- 0x3145
0x110A, // (10) : ㅆ -- 0x3146
0x110B, // (11) : ㅇ -- 0x3147
0x110C, // (12) : ㅈ -- 0x3148
0x110D, // (13) : ㅉ -- 0x3149
0x110E, // (14) : ㅊ -- 0x314a
0x110F, // (15) : ㅋ -- 0x314b
0x1110, // (16) : ㅌ -- 0x314c
0x1111, // (17) : ㅍ -- 0x314d
0x1112 // (18) : ㅎ -- 0x314e
};
// -----<중성>
short HangulJamo1161_Table[21] =
{
0x1161, // (0) : ㅏ -- 0x314f (호환 모음)
0x1162, // (1) : ㅐ -- 0x3150
0x1163, // (2) : ㅑ -- 0x3151
0x1164, // (3) : ㅒ -- 0x3152
0x1165, // (4) : ㅓ -- 0x3153
0x1166, // (5) : ㅔ -- 0x3154
0x1167, // (6) : ㅕ -- 0x3155
0x1168, // (7) : ㅖ -- 0x3156
0x1169, // (8) : ㅗ -- 0x3157
0x116A, // (9) : ㅘ -- 0x3158
0x116B, // (10) : ㅙ -- 0x3159
0x116C, // (11) : ㅚ -- 0x315A
0x116D, // (12) : ㅛ -- 0x315B
0x116E, // (13) : ㅜ -- 0x315C
0x116F, // (14) : ㅝ -- 0x315D
0x1170, // (15) : ㅞ -- 0x315E
0x1171, // (16) : ㅟ -- 0x315F
0x1172, // (17) : ㅠ -- 0x3160
0x1173, // (18) : ㅡ -- 0x3161
0x1174, // (19) : ㅢ -- 0x3162
0x1175 // (20) : ㅣ -- 0x3163
};
// -----<종성>
//참고 : <날개셋> 한글 입력기에서는
// 첫가끝 한글에 종성 채움 문자(U+11A7)를 집어 넣기도 한다.
short HangulJamo11A8_Table[29] =
{
0, // (0) : -- 0x??
0x11A8, // (1) : ㄱ -- 0x3131 (호환 자음)
0x11A9, // (2) : ㄲ -- 0x3132
0x11AA, // (3) : ㄳ -- 0x3133
0x11AB, // (4) : ㄴ -- 0x3134
0x11AC, // (5) : ㄵ -- 0x3135
0x11AD, // (6) : ㄶ -- 0x3136
0x11AE, // (7) : ㄷ -- 0x3137
0x11AF, // (8) : ㄹ -- 0x3139
0x11B0, // (9) : ㄺ -- 0x313A
0x11B1, // (10) : ㄻ -- 0x313B
0x11B2, // (11) : ㄼ -- 0x313C
0x11B3, // (12) : ㄽ -- 0x313D
0x11B4, // (13) : ㄾ -- 0x313E
0x11B5, // (14) : ㄿ -- 0x313F
0x11B6, // (15) : ㅀ -- 0x3140
0x11B7, // (16) : ㅁ -- 0x3141
0x11B8, // (17) : ㅂ -- 0x3142
0x11B9, // (18) : ㅄ -- 0x3144
0x11BA, // (19) : ㅅ -- 0x3145
0x11BB, // (20) : ㅆ -- 0x3146
0x11BC, // (21) : ㅇ -- 0x3147
0x11BD, // (22) : ㅈ -- 0x3148
0x11BE, // (23) : ㅊ -- 0x314A
0x11BF, // (24) : ㅋ -- 0x314B
0x11C0, // (25) : ㅌ -- 0x314C
0x11C1, // (26) : ㅍ -- 0x314D
0x11C2 // (28) : ㅎ -- 0x314E
};
그런데.. [세나] 프로그램을 많이 참고했는데.. 지적재산권에 문제가 될까요?문제가 된다면 없던일로 해야할지도..
첫댓글 가능할 듯합니다. 이미 openwnn 입력기에 15키 기반인 잔나비 님의 한손입력기가 구현되어 있습니다. 16키 방식도 가능할 것으로 보입니다. 물론 이와 별개로 말씀주신 것처럼 저작권 문제가 있을 수 있으니 박흥호 님께로부터 개인적으로 허락을 받으시면 좋을 것 같습니다.
아무래도 메일을 보내 답을 기다려 보겠습니다 감사합니다.
수정 :
"ㅃ = (ㅁ) + (ㅁ) + (~)" 는 "ㅍ = (ㅁ) + (ㅁ) + (~)" 맞는 것 같습니다.
알려주셔서 감사드립니다. 저도 시험해보면서 그 조합이 충돌이 있어서 고민을 했던 참이었습니다.