<div>제가 3d 프린팅에 사용되는 stl 포맷의 파일을 c++로 코딩해서 출력해야 해서 공부 하는 중인데 질문이 있습니다.</div> <div>stl 포맷을 찾아보니 <a target="_blank" href="http://en.wikipedia.org/wiki/STL_">http://en.wikipedia.org/wiki/STL_</a>(file_format)</div> <div><br></div> <div>다음과 같다는걸 알 수 있었습니다.</div> <div><pre style="font-family:monospace, Courier;border:1px solid rgb(221,221,221);padding:1em;line-height:1.3em;font-size:14px;background-color:#f9f9f9;">facet normal <i>n<sub style="line-height:1;font-size:11px;">i</sub> n<sub style="line-height:1;font-size:11px;">j</sub> n<sub style="line-height:1;font-size:11px;">k</sub></i> outer loop vertex <i>v</i>1<sub style="line-height:1;font-size:11px;"><i>x</i></sub><i>v</i>1<sub style="line-height:1;font-size:11px;"><i>y</i></sub><i>v</i>1<sub style="line-height:1;font-size:11px;"><i>z</i></sub> vertex <i>v</i>2<sub style="line-height:1;font-size:11px;"><i>x</i></sub><i>v</i>2<sub style="line-height:1;font-size:11px;"><i>y</i></sub><i>v</i>2<sub style="line-height:1;font-size:11px;"><i>z</i></sub> vertex <i>v</i>3<sub style="line-height:1;font-size:11px;"><i>x</i></sub><i>v</i>3<sub style="line-height:1;font-size:11px;"><i>y</i></sub><i>v</i>3<sub style="line-height:1;font-size:11px;"><i>z</i></sub> endloop endfacet</pre></div> <div>그런데 각각의 숫자는 그냥 소숫점으로 입력하면 안되고 지수부와 가수로 나눠서 입력해야 한다고 하더라구요</div> <div><br></div>float에 넣은 실수를 <div>1.57+e02 처럼 출력하고 싶은데요</div> <div>처음 생각엔 float 데이터비트를 건드려서 출력하면 되겠다고 생각했는데</div> <div>정수를 제외하곤 << 같은 연산자를 사용 할 수 없더라구요</div> <div><br></div> <div>그래서 사용하려면 유니온 이라는 형식을 이용해야 한다고 하는데...</div> <div><br></div> <div>그래서 </div> <div> <div>#include <stdio.h></div> <div> </div> <div>// Struct BitField</div> <div>typedef struct f_tran</div> <div>{</div> <div> union</div> <div> {</div> <div> float fval;</div> <div> struct</div> <div> {</div> <div> unsigned mantissa : 23;</div> <div> unsigned exponet : 8;</div> <div> unsigned sign : 1;</div> <div> };</div> <div> };</div> <div>};</div> <div><br></div> <div><br></div> <div>int main(void)</div> <div>{</div> <div> float f;</div> <div> f_tran val1;</div> <div><br></div> <div> scanf("%f",&f);</div> <div> val1.fval=f;</div> <div><br></div> <div> puts("-----------------");</div> <div> printf("fval :%f\n",val1.fval);</div> <div> printf("sign :%d\n",val1.sign);</div> <div> printf("exponet :%d\n",val1.exponet);</div> <div> printf("mantissa:%d\n",val1.mantissa);</div> <div><br></div> <div> return 0;</div> <div>}</div> <div> </div></div> <div><br></div> <div>다음과 같은 소스를 구했습니다.</div> <div>실수를 넣으면 지수부 가수부 부호로 나눠주는 소스인데</div> <div><br></div> <div>출력되는 숫자가 제 상상과는 많이 다르더라구요</div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201410/1412872020zIgOAid2drU7gccaODupC5vxS.png" width="425" height="163" alt="11_448.png" style="border:none;"></div> <div style="text-align:left;"><br></div> <div style="text-align:left;">이런식으로 출력이 되더라구요 </div> <div style="text-align:left;"><br></div> <div style="text-align:left;">제가 하고 싶은건 1.148+e01 이런식으로 출력이 되고 싶은건데 저런 형식의 가수와 지수에서 어떤식으로 가공을 해야 할까요??</div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.