전체 글 491

[batch] Windows 바탕화면에 바로가기 만들기 배치 스크립트

바탕화면에 현재 bat이 위치하는 디렉토리의 TinyDoge.exe에 대한 바로가기를 만드는 스크립트이다. @echo off set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs" echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% echo sLinkFile = "%USERPROFILE%\Desktop\TinyDoge.lnk" >> %SCRIPT% echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% echo oLink.TargetPath = "%cd%\TinyDoge.exe" >> %SCRIPT% echo oLink.Save >> %SC..

프로그래밍을 위한 수학 - 뉴턴의 운동 법칙

움직이는 물체는 위치, 속도, 가속도 벡터를 가진다. 가속도는 속도에 영향을 미치고, 속도는 위치에 영향을 미치는 관계다. 프레임마다 물체가 움직인다는 것은 accX가 가속도, velocityX가 속도라고 하면 위치 (x,y)는 대략적으로 다음과 같이 쓸 수 있다. function move() { this.velocityX += this.accX this.velocityY += this.accY this.x += this.velocityX this.y += this.velocityY } 힘(Force)은 뭘까? 여기서 말하는 힘은 물리학에서 말하는 힘이다. "힘은 질량을 지닌 물체를 가속하는 벡터"이다. 단순히 한 프레임이 지나면 특정 거리만큼 이동하는 물체가 아니라 "자연"스럽게 이동하는 물체를 구현하..

[Windows] Git Bash에 tmux 설치해서 사용하기

Git Bash는 설치되어 있다고 가정하도록 하겠다. 먼저 MSYS2를 설치해야하는데, 윈도우에서 사용할 수 있는 GCC 지원 프로그램은 MINGW, MSYS2, CYGWIN 3가지가 있다. Git Bash는 MINGW에 해당한다. MSYS2 설치 https://www.msys2.org/ 에들어가서 Installer를 다운받아서 설치한다. 아래 링크를 이용해도 되지만, 최신버전을 원한다면 홈페이지에 들어가기~! https://github.com/msys2/msys2-installer/releases/download/2022-06-03/msys2-x86_64-20220603.exe MSYS2 관리자 권한으로 실행 설치가 완료되었다면, MSYS2 터미널을 관리자 권한으로 실행한다. TMUX 설치 이제 pac..

<자네, 좌뇌한테 속았네!> - 크리스 나이바우어

도서관에서 신착도서 중 우연히 고른 책인데, 생각보다 흥미롭다. 아직은 초장이라 조금 더 읽어봐야 전체 내용을 알겠지만. 이 책에 소개된 뇌 연구에 따르면, 대부분의 사람들에게는 우측을 선호하는 경향이 있다고한다. 엇비슷한 물건들을 늘어놓고 골라보라하면 오른편에 있는 물건을 집는다는 말이다. "이걸 고른 이유가 뭡니까?"라고 물어보면 "이뻐서 그랬다"라거나 그럴싸한 이유를 얘기한다. 어느 누구도 오른쪽에 있어서 골랐다라고 하지않는다. 식당에서 계산할때 카드뽑기에서 승리할 확률을 높이는 방법!으로 쓸만하지 않을까? 조커뽑기 게임처럼 타인에게 어느정도 선택을 강요해야할 순간에 쓸 수 있는 트릭인 것 같다 ㅎㅎ. 이 책을 쓴 작가는 아버지가 돌아가셨을때 크나 큰 슬픔에 좌절을 겪었는데, 육체적으로 다친게 아님..

나/독후감 2022.08.29

프로그래밍을 위한 수학 - 벡터 기초

벡터 벡터는 “크기와 방향을 모두 가지는 어떤 양”으로 정의된다. 각 프레임마다 객체는 특정 수 픽셀만큼 가로 및 세로로 움직이도록 프로그래밍하게된다. 객체의 새로운 위치는 현 위치에 속도를 적용한 값이 된다. 위 그림을 코드로 옮기면 아래와 같다. // location = (this.x, this.y) this.x += this.vx // horizontal steps this.y += this.vy // vertical steps // new_location = (this.x, this.y) 벡터의 덧셈 두 벡터 u = (5, 2), v = (3, 4)가 있다고하면 u + v = (8, 6)이다. 두 벡터를 더한다는 것은 단순히 벡터의 성분 x와 y 값을 더하는 것이다. 코드상에서 중력을 표현할때도 ..

프로그래밍을 위한 수학 - X축과 직선이 이루는 사이각 구하기

마우스로 찍은 점을 기준으로 야구공이 회전하는 기능을 만들 것이라고 가정 해보자. 그림은...벡터로 되어있지만 어쨌든 검은색 화살표 끝이 가리키는 방향이 유저가 찍은 좌표 x, y라고 하겠다. 야구공은 얼마만큼 회전해야할까? 위에서 본 그림을 우리에게 익숙한 직각 삼각형으로 나타내면 사이각 θ에대해 이렇게 정리할 수 있다. 우리는 V에대해 모르기때문에, 탄젠트 식으로 θ값을 구할 것이다. 양변에 역탄젠트(Arctangent)를 취해주면 식은 θ에 대하여 정리된다. 구글에 Math.atan2를 쳐서 가장 위에나온 javascript atan2 메소드의 설명을 가져와 보았다. The Math. atan2() method returns a numeric value between -π and π represen..

[안드로이드] View를 터치 입력에 따라 회전하기 (핸들 구현)

이번에 만들어볼 것은 사용자의 터치 입력에따라 회전하는 핸들뷰다. 다양하게 활용할 수 있는데, 회사에서 뽑기 기계를 만들어보자는 아이디어에서 삼각함수로 뽀리면 되겠는데?! 라는 생각에서 만들어서 검증해보았다. xml은 터치 입력을 받을 view_touch와 ImageView인 handle 단 두개로 이루어져있다. center에는 touch view의 가운데 지점을 저장하고, handle 이미지 뷰를 정 중앙으로 옮긴다. val viewTouch = findViewById(R.id.view_touch) val handle = findViewById(R.id.handle) val center = PointF() viewTouch.viewTreeObserver.addOnGlobalLayoutListener(o..

애플 실리콘 칩(M1, M2) Python 환경설정 한번에 끝내기

1. PackageManager인 Homebrew 설치 echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile eval "$(opt/homebrew/bin/brew shellenv)" 2. Rosetta (인텔 CPU 호환용) 설치 softwareupdate --install-rosetta 3. python 설치 brew install python 이 글은 파이썬 3.7을 기준으로 하고 있다. 3. ~/.zshrc를 만들어서shell 설정 파일을 추가한다. vi ~/.zshrc export LDFLAGS="-L/opt/homebrew-x86_64/opt/mysql-client/lib" export CPPFLAGS="-I/opt/homebrew-x..