기본 콘텐츠로 건너뛰기

라벨이 Gradient Background인 게시물 표시

Gradient Background 표현하기

OpenCASCADE 6.5.0이상에서는 단 한줄의 코드로 Gradient Background color를 설정할 수 있습니다. 관련 링크 --------------------------------------------------------------------------------- 원문은 아래에서 확인하실 수 있습니다. http://sondra.egloos.com/5446008 MFC를 사용한다면 OnSize Mehtod에 원문의 코드를 넣으면 됩니다. 원문에 있는 코드를 사용해보니 윈도우의 크기가 변경될 때마다 gradient 색상이 조금씩 차이가 나는걸 발견하였습니다. 그 이유를 수소문해보니(?) 윈도우의 크기에 따라 opengl의 직교 좌표계의 범위를 OCC가 계산하여 설정하는 것을 알았습니다. 즉 우리가 layer에서 SetOrtho 함수를 사용하여 좌표계의 범위를 주어도 OCC에서 그댈 사용하지 않고 다시 계산하여 최종적으로 그 값을 사용하는 것입니다. 다행히 OCC에서 소스를 제공하니 소스에서 좌표계를 계산하는 루틴을 알수가 있습니다. 그 값을 적용하여 gradient를 그려주면 윈도우의 크기가 변경될때 마다 색상 차이가 나는 것을 방지할 수 있습니다.  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 if (aBackgroundLayer.IsNull())  {      Standard_Boolean aSizeDependant  =  Standard_True;  //each window to have particular mapped layer?   ...