Programming/openGL2019. 5. 30. 19:04

다른 유틸리티를 같은 레벨로 봤군...

gluLookAt과 gluPerspective는 카메라를 조작하는 방법인데

glu로 시작하듯 gl Utility 계열이고

gl로 시작하는 glFrustum 과 glOrtho는

프로젝션 뷰를 perspective와 orthogonal로 설정하도록 한다.

 

Name
gluLookAt — define a viewing transformation

C Specification
void gluLookAt( GLdouble eyeX,
  GLdouble eyeY,
  GLdouble eyeZ,
  GLdouble centerX,
  GLdouble centerY,
  GLdouble centerZ,
  GLdouble upX,
  GLdouble upY,
  GLdouble upZ);

[링크 : https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluLookAt.xml]

 

Name
gluPerspective — set up a perspective projection matrix

C Specification
void gluPerspective( GLdouble fovy,
  GLdouble aspect,
  GLdouble zNear,
  GLdouble zFar);

[링크 : https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluPerspective.xml]

 

Name
glFrustum — multiply the current matrix by a perspective matrix

C Specification
void glFrustum( GLdouble left,
  GLdouble right,
  GLdouble bottom,
  GLdouble top,
  GLdouble nearVal,
  GLdouble farVal);

[링크 : h]ttps://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glFrustum.xml]

 

Name
glOrtho — multiply the current matrix with an orthographic matrix

C Specification
void glOrtho( GLdouble left,
  GLdouble right,
  GLdouble bottom,
  GLdouble top,
  GLdouble nearVal,
  GLdouble farVal);

[링크 : https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glOrtho.xml]

'Programming > openGL' 카테고리의 다른 글

gluPerspective / gluLookat 소스코드  (0) 2019.06.01
gl glx glu glut 소스코드  (0) 2019.05.31
gl model view projection mat  (0) 2019.05.29
gluPerspective()  (0) 2019.05.28
glfw3 in ubuntu 19.04  (0) 2019.05.10
Posted by 구차니
Programming/node.js2019. 5. 29. 17:56

별다른 설정없이 해서 그런가

아니면 SSHD의 효과로 캐싱이 되서 그런가 속도 단축되지 않네..

 

$ time npm run build

real    0m54.356s
user    1m14.008s
sys     0m1.938s

 

$ time npm-run-all build

real    0m20.614s
user    0m26.791s
sys     0m0.973s

 

$ time npm run build

real    0m20.614s 
user    0m26.791s 
sys     0m0.973s 

 

[링크 : https://www.npmjs.com/package/npm-run-all]

'Programming > node.js' 카테고리의 다른 글

electron ipc  (0) 2019.06.07
electron.js  (0) 2019.06.03
pdf 내용 추출  (0) 2019.05.27
node.js express 301 redirect  (0) 2019.05.15
node.js 항목 확인  (0) 2019.04.23
Posted by 구차니
Programming/openGL2019. 5. 29. 08:06

오랫만에 다시 보니 기억이 하나도 안나네.. 큭...

행렬부터 다시 공부해야하나?

 

[링크  : http://www.opengl-tutorial.org/kr/beginners-tutorials/tutorial-3-matrices/]

[링크  : https://solarianprogrammer.com/2013/05/22/opengl-101-matrices-projection-view-model/]

'Programming > openGL' 카테고리의 다른 글

gl glx glu glut 소스코드  (0) 2019.05.31
glulookat / gluperspective / glfrustrum / glortho  (0) 2019.05.30
gluPerspective()  (0) 2019.05.28
glfw3 in ubuntu 19.04  (0) 2019.05.10
openGL vao(Vertex Array Object)  (0) 2019.05.07
Posted by 구차니
Programming/openGL2019. 5. 28. 19:04

오랫만에 다시 공부하게 되네 후..

일단 위의 함수는 z값에 대한 Near와 Far 값이 존재하는데

둘다 양수여야 하고 0 이상의 값을 가져야 한다.

(그걸 모르고 예전엔 0을 넣고 왜 안되는 거야! 하고 있었으니..)

zNear

Specifies the distance from the viewer to the near clipping plane (always positive).

zFar

Specifies the distance from the viewer to the far clipping plane (always positive).

Notes

Depth buffer precision is affected by the values specified for zNear and zFar. The greater the ratio of zFar to zNear is, the less effective the depth buffer will be at distinguishing between surfaces that are near each other. If

r = zFar zNear

roughly log 2  r bits of depth buffer precision are lost. Because r approaches infinity as zNear approaches 0, zNear must never be set to 0.

[링크 : https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluPerspective.xml]

 

실제코드인진 모르겠지만

znear가 0 이면, ymax xmax가 다 0이 되네

// Matrix will receive the calculated perspective matrix.
// You would have to upload to your shader
// or use glLoadMatrixf if you aren't using shaders.
void glhPerspectivef2(float *matrix, float fovyInDegrees, float aspectRatio,
                      float znear, float zfar)
{
    float ymax, xmax;
    float temp, temp2, temp3, temp4;
    ymax = znear * tanf(fovyInDegrees * M_PI / 360.0);
    // ymin = -ymax;
    // xmin = -ymax * aspectRatio;
    xmax = ymax * aspectRatio;
    glhFrustumf2(matrix, -xmax, xmax, -ymax, ymax, znear, zfar);
}

 

DIV/0의 향연이니.. 아마 입력 단계에서 zNear / nFar가 0이면 계산을 하지 않도록 할지도?

void glhFrustumf2(float *matrix, float left, float right, float bottom, float top,
                  float znear, float zfar)
{
    float temp, temp2, temp3, temp4;
    temp = 2.0 * znear;
    temp2 = right - left;
    temp3 = top - bottom;
    temp4 = zfar - znear;
    matrix[0] = temp / temp2;
    matrix[1] = 0.0;
    matrix[2] = 0.0;
    matrix[3] = 0.0;
    matrix[4] = 0.0;
    matrix[5] = temp / temp3;
    matrix[6] = 0.0;
    matrix[7] = 0.0;
    matrix[8] = (right + left) / temp2;
    matrix[9] = (top + bottom) / temp3;
    matrix[10] = (-zfar - znear) / temp4;
    matrix[11] = -1.0;
    matrix[12] = 0.0;
    matrix[13] = 0.0;
    matrix[14] = (-temp * zfar) / temp4;
    matrix[15] = 0.0;
}

[링크 : https://www.khronos.org/opengl/wiki/GluPerspective_code]

'Programming > openGL' 카테고리의 다른 글

glulookat / gluperspective / glfrustrum / glortho  (0) 2019.05.30
gl model view projection mat  (0) 2019.05.29
glfw3 in ubuntu 19.04  (0) 2019.05.10
openGL vao(Vertex Array Object)  (0) 2019.05.07
glfw - gl framework  (0) 2019.05.07
Posted by 구차니
Programming/node.js2019. 5. 27. 12:28

pdf 읽어오고 변환하는건 python이나 node.js 그리고 java 등에 모두 존재는 하는 듯

그래도 라이센스가 문제인데..

 

[링크 : https://pdfbox.apache.org/]

[링크 : https://www.tutorialkart.com/pdfbox/extract-text-line-by-line-from-pdf/]

 

[링크 : https://itextpdf.com/en]

[링크 : https://stackoverflow.com/questions/4028240/extract-columns-of-text-from-a-pdf-file-using-itext]

 

[링크 : https://www.npmjs.com/package/pdfreader]

[링크 : https://www.npmjs.com/package/pdf-lib]

 

[링크 : http://www.unixuser.org/~euske/python/pdfminer/]

PDFMiner 모듈은 Python 2 버젼에서만 사용 가능

[링크 : https://dgkim5360.tistory.com/entry/python-pdfminer-convert-pdf-to-html-txt]

'Programming > node.js' 카테고리의 다른 글

electron.js  (0) 2019.06.03
npm-run-all 병렬 빌드 (실패)  (0) 2019.05.29
node.js express 301 redirect  (0) 2019.05.15
node.js 항목 확인  (0) 2019.04.23
proxy error: Error: write after end  (0) 2019.04.23
Posted by 구차니
Programming/C++ STL2019. 5. 24. 15:43

어떻게 보면.. scanf를 좀 편리하게 해주는 cpp용 연산자라고 보면 되려나?

 

[링크 : http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/]

 

string str_sensor_data(mesg);
stringstream stream(str_sensor_data);
for(int i=0;i<5;i++){

    stream >> sensor_data[i]; 

}

[링크 : http://youngmok.com/udp-server-c-class-listening-thread/]

'Programming > C++ STL' 카테고리의 다른 글

cpp 부모타입으로 업 캐스팅 된 객체의 원래 클래스 알기  (0) 2021.09.30
cpp string 관련  (0) 2019.06.10
c++ 함수 인자 기본값  (0) 2017.11.08
cpp string compare 와 ==  (0) 2017.01.31
cpp this  (0) 2016.07.18
Posted by 구차니
Programming/C Win32 MFC2019. 5. 24. 12:18

코드 분석하다 보니 어떻게 작동할지 몰라서 해보니

헐.. while(0) 이냐 !0 이냐 정도로 밖에 작동하지 않네

예제 소스가 이상한 조건문이 되어버렸네...

 

client_sock에 -1이 들어와도 while은 중단되지 않고 0일때만 중단되는데

그러면 if(client_sock < 0)은 <=0이 아니라 들어갈 방법이 없네?

while( (client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c)) )
{
puts("Connection accepted");

pthread_t sniffer_thread;
new_sock = malloc(1);
*new_sock = client_sock;

if( pthread_create( &sniffer_thread , NULL ,  connection_handler , (void*) new_sock) < 0)
{
perror("could not create thread");
return 1;
}

//Now join the thread , so that we dont terminate before the thread
//pthread_join( sniffer_thread , NULL);
puts("Handler assigned");
}

if (client_sock < 0)
{
perror("accept failed");
return 1;
}

[링크 : https://www.binarytides.com/server-client-example-c-sockets-linux/]

'Programming > C Win32 MFC' 카테고리의 다른 글

vkey win32 / linux  (0) 2021.04.30
strptime  (0) 2021.02.17
c언어용 JSON 라이브러리 목록  (0) 2018.10.23
uuid in c  (0) 2018.10.22
엔디안 급 멘붕..  (0) 2018.05.29
Posted by 구차니
Programming/R2019. 5. 22. 15:01

이제 R까지 해야하나.. ㅠㅠ

java가 있는데 인식을 못하고 뻘짓할때 이거 해주고

R 실행하면 되는 듯

 

sudo R CMD javareconf

[링크 : https://askubuntu.com/questions/1069463/not-able-to-install-rjava-in-r-ubuntu-18-04]

Posted by 구차니
Programming/node.js2019. 5. 15. 13:38

흐음.. 캐싱할때 이걸 어떻게 상태로 캐싱을 해놓으면 되려나..

 

app.use(function forceLiveDomain(req, res, next) {
  // Don't allow user to hit Heroku now that we have a domain
  var host = req.get('Host');
  if (host === 'serviceworker-cookbook.herokuapp.com') {
    return res.redirect(301, 'https://serviceworke.rs/' + req.originalUrl);
  }
  return next();
});

 

[링크 : https://davidwalsh.name/express-redirect-301]

[링크 : https://stackoverflow.com/questions/7450940/automatic-https-connection-redirect-with-node-js-express]

 

res.redirect([status,] path)
Redirects to the URL derived from the specified path, with specified status, a positive integer that corresponds to an HTTP status code . If not specified, status defaults to “302 “Found”.

[링크 : https://expressjs.com/ko/4x/api.html#res.redirect]

'Programming > node.js' 카테고리의 다른 글

npm-run-all 병렬 빌드 (실패)  (0) 2019.05.29
pdf 내용 추출  (0) 2019.05.27
node.js 항목 확인  (0) 2019.04.23
proxy error: Error: write after end  (0) 2019.04.23
node.js 시그널 핸들링과 reload  (0) 2019.04.23
Posted by 구차니

함수 같은녀석들 어떻게 처리하나 궁금했는데

인터랙티브 하게 디버깅 간으한 자체 모듈이 있는 듯

 

2.x 대에도 있고 3.x대에도 있으니 걱정없고

아래처럼 인터프리터에서 pdb를 불러와 pdb.run()을 통해 해당 모듈을 테스트 할 수 있고

>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
> (0)?()
(Pdb) continue
> (1)?()
(Pdb) continue
NameError: 'spam'
> (1)?()
(Pdb)

 

아니면 -m pdb로 모듈을 불러 특정 스크립트를 실행하는 것도 방법인듯

python3 -m pdb myscript.py

[링크 : https://docs.python.org/3.7/library/pdb.html]

[링크 : https://www.digitalocean.com/community/tutorials/how-to-use-the-python-debugger]

'Programming > python(파이썬)' 카테고리의 다른 글

ubuntu에서 python으로 postgres 접속하기  (0) 2019.06.24
python pip 특정 버전 설치하기  (0) 2019.06.18
anaconda(python)  (0) 2019.05.15
파이썬 vscode 디버깅 하기  (0) 2019.05.14
python3 import cv2  (0) 2019.05.09
Posted by 구차니