아래 그림에서와 같이, 원래의 좌표를 (x, y)라 하고, y축으로부터의 각도를 θ라고 하자. 또, 회전 시키고자하는 각도를 δ라 하고, 회전된 좌표를 (x', y')라고 한다. 이 때, 회전의 기준점과 원래의 좌표 사이의 거리를 r이라고 하면, 회전된 이후의 좌표와 회전 기준점 사이의 거리 또한 r로써 동일하다. 수식으로 정리하면, x = r sinθ y = r cosθ x' = r sin(θ+δ) y' = r cos(θ+δ) 삼각함수의 덧셈정리 를 이용하여 x'와 y'를 풀어보면, x' = r (sinθ cosδ + cosθ sinδ) = r sinθ cosδ + r cosθ sinδ y' = r (cosθ cosδ - sinθ sinδ) = r cosθ cosδ - r sinθ sinδ x = r sinθ, y = r cosθ이므로, x' = x cosδ + y sinδ y' = y cosδ - x sinδ δ가 반시계방향인 경우에는, x' = x cosδ - y sinδ y' = y cosδ + x sinδ 라는 수식으로 정리될 수 있다. 이렇게 구한 공식을 도형의 각 꼭지점에 대해서 적용하면 회전 이동한 도형을 구할 수 있다. public void rotateBy ( float d , float x0 , float y0) { float dX = x - x0 ; float dY = y - y0 ; double rad = Math . abs ( Math . toRadians (d)) ; float cosD = ( float ) Math . cos (rad) ; float sinD = ( float ) Math . sin (rad) ; if (d>= 0 ) { x = dX * cosD + dY * sinD ; y = dY * cosD...
Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 보다 강력한 암호화 운용방식을 지원하기 위해서 '자바 암호화 확장'을 다운받아 설치해야 하는데, 이전까지는 local_policy.jar , US_export_policy.jar 두 개의 파일을 <java-home>/lib/security 폴더에 저장해두는 방식이었다. 그러나, 자바 8 151 버전 이후부터는 폴더 구조가 변경되어 <java-home>/lib/security/policy 폴더가 생겼으며 그 안에 limited 와 unlimited 폴더가 있고 각각 local_policy.jar , US_export_policy.jar 두 파일이 존재하므로 오라클 사이트에서 다운로드 받을 필요가 없어졌다. 그리하여, 새로운 활성화 방법은 <java-home>/lib/security/java.security 파일을 열어 826번째 줄에서 crypto.policy=unlimited 의 주석 처리 부분을 제거한다. 또는, 자바 소스 코드에서 Security. setProperty ( "crypto.policy" , "unlimited" ) ; 라고 지정해 줄 수도 있다. 추가하여, 자바 9부터는 기본적으로 unlimited strength가 활성화되어 있다고 한다.
한글 음절 문자를 자소 단위로 분해하거나 또는 반대로 자소 문자들을 합쳐서 하나의 음절 문자로 만드는 자바 소스 코드이다. 이에 관한 간략한 배경 지식이 필요한 경우, 이 글 을 참고하기 바란다. package kr.pe.elex.hangeul; /** * Created by Elex on 2014-07-11. */ public class HCharacter { // 한글 음절 protected static final char HANGEUL_SYLLABLE_BEGIN = ' \uAC00 ' ; protected static final char HANGEUL_SYLLABLE_END = ' \uD7AF ' ; // 한글 자모 protected static final char HANGEUL_JAMO_BEGIN = ' \u1100 ' ; protected static final char HANGEUL_JAMO_END = ' \u11FF ' ; protected static final char HANGEUL_JAMO_CHOSEONG_BEGIN = ' \u1100 ...
댓글
댓글 쓰기