posted by 생존본능 2017.03.31 15:45
크리에이티브 커먼즈 라이선스
Creative Commons License

베지에 곡선


베지에 곡선 혹은 베지어 곡선(Bézier Curve)은 개의 점으로부터 얻어지는 차 곡선으로 수치 해석 분야에서 상당히 중요한 위치를 차지하고 있다. 특히 3차 베지에 곡선은 포스트스크립트 글꼴, 메타폰트(METAFONT), 김프 등에서 부드러운 곡선을 생성하는 데에 이용되고 있으며, 트루 타입 폰트에는 2차 베지에 곡선 알고리즘을 사용한다.

프랑스의 자동차 제조사 르노사의 기술자인 피에르 베지에가 1962년 자동차 몸체 디자인에 사용하면서부터 널리 알려졌다.



커브, 곡선을 그림에 있어 가장 유용한 방법이라 할수있다.



1차(Linear) 베지에 곡선




1차 베지에 곡선은 p0 지점에서 p1 의 지점까지 직선으로 이동하는 것이며, t 는 0 에서 1 까지 변화하는 값이다.



B(t) = (1−t)*P0 + t*P1, t∈[0,1]



10% 진행된 상황에서 ( t = 0.1 ) p0 의 위치는 (1,1) 그리고 p1 의 위치가 (2,2) 일때 위치는 다음과 같다.


[ 1.1 , 1.1 ] = ( 1 - 0.1 ) * [ 1 , 1 ] + ( 0.1 ) * [ 2 , 2 ];



공식을 unity c# 코드로 구현할 경우 경우 다음과 같다.



 






2차(Quadratic) 베지에 곡선



 




2 차 베지에 곡선은 1차 베지에 곡선에서 포인트가 하나 추가된 것이다.



B(t) = (1 − t)2P0 + 2t(1 - t)P1 + t2P2, t∈[0,1]


이를 글로 풀어 쓸경우 다음과 같다. 


p0 - p1 의 베이지 곡선을 구한다음 이를 pa 라 한다. 

p1 - p2 의 베이지 곡선을 구한다음 이를 pb 라 한다. 

pa - pb 의 베이지 곡선을 구한다.




공식을 unity c# 코드로 구현할 경우 경우 다음과 같다.



저작자 표시
신고

'개발 > Unity' 카테고리의 다른 글

Unity3d 베지에 곡선  (0) 2017.03.31
Unity UnityException: Unable to install APK!  (0) 2017.01.11
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17
posted by 생존본능 2017.01.11 18:01
크리에이티브 커먼즈 라이선스
Creative Commons License


UnityException: Unable to install APK!

Installation failed. See the Console for details.

 

 별다른 로그 없이 위와같은 내용만 표출하고 빌드가 안되는 않는 현상이 발생하여 찾아보니,


 현재 폰에 설치 되어있는 같은 패키지 어플을 삭제하고 다시 시도하니 정상동작하였습니다.


  출처 : http://answers.unity3d.com/questions/815011/unable-to-install-apk.html

저작자 표시
신고

'개발 > Unity' 카테고리의 다른 글

Unity3d 베지에 곡선  (0) 2017.03.31
Unity UnityException: Unable to install APK!  (0) 2017.01.11
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17
posted by 생존본능 2016.12.17 15:48
크리에이티브 커먼즈 라이선스
Creative Commons License


Renderer.OnBecameInvisible()


카메라 밖으로 객체가 나갈경우 호출된다.



저작자 표시
신고

'개발 > Unity' 카테고리의 다른 글

Unity3d 베지에 곡선  (0) 2017.03.31
Unity UnityException: Unable to install APK!  (0) 2017.01.11
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17
posted by 생존본능 2016.12.17 15:45
크리에이티브 커먼즈 라이선스
Creative Commons License


- Time.time


 이 프레임의 시작 시간은 (읽기 전용). 이것은 게임의 시작한 시간이다.

 즉 게임이 시작하였을때부터 진행되어온 시간이 기록된다.



 - Time.frameCount


 게임이 시작된 이후부터 렌더링된 프레임의 회전 숫자가 기록된다.



 - Time.deltaTime


 프레임이 완료된 시점은 시간을 기록한다.

즉 이전 코드 실행이후 해당 프레임의 처리를 완료된 시점이 기록된다.



- Time.smoothDeltaTime


 deltaTime과 기능적으로는 비슷하나 조금더 객체가 부드럽게 움직일수 있도록


큰움직임을 제한하여 기록한다.



 

저작자 표시
신고

'개발 > Unity' 카테고리의 다른 글

Unity3d 베지에 곡선  (0) 2017.03.31
Unity UnityException: Unable to install APK!  (0) 2017.01.11
Unity 화면밖으로 객체가 나갈경우 이벤트  (0) 2016.12.17
Unity3d Time 클래스  (0) 2016.12.17
posted by 생존본능 2016.10.12 15:43
크리에이티브 커먼즈 라이선스
Creative Commons License


[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project MarkCommunity: There are test failures.

[ERROR] 

[ERROR] Please refer to /Users/myeongboseo/spring/MarkCommunity/target/surefire-reports for the individual test results.

[ERROR] -> [Help 1]

[ERROR] 

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch to enable full debug logging.

[ERROR] 

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException



Spring Boot 빌드를 하면 정상적으로 빌드되고 프로젝트도 동작을 하지만


maven 빌드를 하면 위와 같은 오류가 발생하였습니다.


위 같은 오류는 여러가지 이유가 있었지만 저는 spring boot를 최초 생성할때 package의 경로와


application class 의 경로가 일치하지 않아서 발생하여,


package경로와 Application class의 위치가 일치하니 정상적으로 동작합니다.

저작자 표시
신고

'개발 > error' 카테고리의 다른 글

[Spring Boot] MojoFailureException 오류  (1) 2016.10.12
posted by 생존본능 2016.06.03 15:25
크리에이티브 커먼즈 라이선스
Creative Commons License


imageview.layer.magnificationFilter = kCAFilterNearest;

저작자 표시
신고

'개발 > Swift' 카테고리의 다른 글

swift Imageview not antialias  (0) 2016.06.03
posted by 생존본능 2016.04.24 06:52
크리에이티브 커먼즈 라이선스
Creative Commons License

Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master; the first event 'mysql-bin.000091'


 

 저 같은 경우에는 replication 을 사용하는중 마스터 서버를 재부팅할때 발생하였습니다.


 


 이렇게 현재 읽고있는 log 를 다음으로 변경하여 수정하였습니다.

 


https://www.percona.com/blog/2014/10/08/mysql-replication-got-fatal-error-1236-causes-and-cures/

저작자 표시
신고

'개발 > SQL' 카테고리의 다른 글

Got fatal error 1236 from master when reading data from binary log  (0) 2016.04.24
SQLite 변수의 데이터 유형  (0) 2013.12.26
[MY-SQL] 현재 DataBase 에 있는 모든 Table 가져오기.  (0) 2011.06.01
MS-SQL 문제 9문  (0) 2011.05.18
MS-SQL Veiw  (0) 2011.05.18
MS-SQL 문제 7문  (0) 2011.05.18
posted by 생존본능 2015.11.23 02:14
크리에이티브 커먼즈 라이선스
Creative Commons License




유저권한 없는상태에서 접근시 발생되는 오류입니다.




위처럼 유저값을 넣어주시면 됩니다.


저작자 표시
신고

'개발 > JAVA' 카테고리의 다른 글

jsoup 403 error  (0) 2015.11.23
JAVA 클래스의 초기화 타이밍에 관한 고찰  (0) 2015.10.29
posted by 생존본능 2015.10.29 21:31
크리에이티브 커먼즈 라이선스
Creative Commons License


 안드로이드를 개발하다가 java의 초기화 타이밍에대해 다시금 생각하는 문제에 도달하여 이렇게 글을 남깁니다.


제가 도달한 문제인데 한번 알아두면 좋을것 같네요.


문제! 





print 된값은?




 ..


 ..


 ..


 ..


 ..


 ..


 ..


 ..


 ..


 ..


 ..


 ..


정답은 0 입니다.


 왜 0일까요? 분명 test라는 int를 5로 초기화 하는데,  결과값은 0이라니?


 이 문제때문에 한동안 고민했었는데요,  이유는 초기화 타이밍 때문이었습니다.


 JavaTest 라는 클래스를 초기화 하면서 test 라는 변수에 5라는 숫자를 넣기전에


 Parent 클래스가 test라는 변수를 호출하여 최초 클래스 생성시 기본값인 0 이 표시된것이지요,


 알고있으면 당연히 넘길 문제인데, 모르면 오랫동안 찾아도 쉽게 찾을수 없는 부분일듯 합니다.





저작자 표시
신고

'개발 > JAVA' 카테고리의 다른 글

jsoup 403 error  (0) 2015.11.23
JAVA 클래스의 초기화 타이밍에 관한 고찰  (0) 2015.10.29
posted by 생존본능 2015.10.15 23:00
크리에이티브 커먼즈 라이선스
Creative Commons License


Android Studio 에서 push GCM 구현


1. 프로젝트를 생성.

.


2. build.gradle 에서 gcm 라이브러리를 import 합니다.


dependencies 안에 값을 넣습니다.


 compile 'com.google.android.gms:play-services:8.1.0'





3. class 파일을 생성하여줍니다.


 총 3개의 파일이 필요합니다.


화면구성과 값 등록시 필요한 MainActivity 와,


push가 왔을때 전달할 GcmBroadcastReceiver 클래스


push 받은이후 동작을 구성할 GcmIntentService 클래스가 필요합니다.




MainActivity


mainActivity에서는 푸시를 등록하는 역활을 해줍니다.




SENDER_ID 값에다가 등록한이후 클라이언트 ID값을 넣어주시면 됩니다.


그리고 등록한 이후에 쿠키값을 서버에 전달하여 주면 됩니다.


regId = gcm.register(SENDER_ID); 


 서버에서는 서버키 값과 regId 두가지 값으로 push를 하게 되기때문에,


regId값을 서버에 넣는 코드를 추가하시면 됩니다.



GcmBroadcastReceiver


GcmBroadcastReceiver는 단순이 값을 받아서 서비스쪽에 전달하는 역활을 하게됩니다.




GcmIntentService


GcmIntentService는 push가 왔을때에 행동을 취하게 됩니다.


현재 클래스는 단순히 값이 왔을때 Log.i를 찍는 행동을 하게 됩니다.





2. manifest 에서 권한을 추가합니다.






manifest 에서 리시버와 서비스를 추가합니다.




AndroidManifest.xml



이후 서버쪽에 서버 키값과 regId 값을 전달해주시면,


서버쪽에서 push를 하게되면 디바이스쪽으로 전달됩니다.


저작자 표시
신고

티스토리 툴바