<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                一、 總有一些圖形會出乎意料: 參數為: 1、 //輸入初始參數: double arc1 = (-5.0 / 16.0)*Pild;// //hdc:畫板,arc1入射角-Pi~~+Pi,3線段次數,x=400,y=310為起始點! light01line03(hdc, arc1, 3, 400, 310);// 如: ![](https://box.kancloud.cn/0906ba6f80e4a385b266db4b8c5ae0f7_884x729.png) 2、 rc1 = (-7.0 / 16.0)*Pild;// //hdc:畫板,arc1入射角-Pi~~+Pi,3線段次數,x=400,y=310為起始點! light01line03(hdc, arc1, 3, 400, 310);// ![](https://box.kancloud.cn/3ebe4a6a47221a0d1b8d2d9ef9cdff6d_560x519.png) 核心代碼: ``` //hdc繪圖板, arc1arg01入射角 linelength線長,x0初始點坐標X,y0:Y初始 int light01line03(HDC hdc, double arc1arg01, unsigned long linelength, double x0, double y0) { double arc1arg02; arc1arg02 = regularAngle(arc1arg01); double X001 = x0; double Y001 = y0; line2normal(hdc, arc1arg01, X001, Y001, RGB(0, 200, 200),10); cout << "[arc1arg01:" << arc1arg01 << "]-"; cout << "[arc1arg02:" << arc1arg02 << "]; "; unsigned long itime = 0; // int laiguoTimes = 0; double old1X001 = X001; double old1Y001 = Y001; double mid01X01 = X001; double mid01Y01 = Y001; double arc01normal01origin001; double arc1normal01; double fanshe01Arc01; double reflecteAng01; double Xorigin01; double Yorigin01; //循環光走(光線前進-簡稱光進)并反射等 // do { label01star01begin01: if (linelength < 1) { return 1; } lable110: //++itime; itime = 1; cout << "[itime:" << itime << "]_"; lable220: //開始算 反射角,并 (繼續)光進 Xorigin01 = cos(arc1arg02)*(double)itime; Yorigin01 = sin(arc1arg02)*(double)itime; lable230: X001 = Xorigin01 + old1X001; Y001 = Yorigin01 + old1Y001; cou02t << "[X001:" << X001 << "]-"; cou02t << "[Y001:" << Y001 << "];"<<endl; setpixe02l(hdc, X001, Y001, RGB(255, 25, 0));// , 255, 0));//封裝,封裝都是有目的 的;沒有目的 的“瞎封裝”…會從我的小組被開除. //下面進入判斷是否該反射,咋反射(和哪個圓反射…! lable330: //判斷點的狀態 // if (isInC1Bigcircle(X001, Y001) && (isInC2littlecircle(X001, Y001)) //if110 此點(新舊點)都在兩圓內 if(1==isInTwoCircles(X001,Y001) ) // { setpixe02l(hdc, X001, Y001, RGB(255, 0, 0));// cou02t << "[01itime:" << itime << "]_"; old1X001 = X001; old1Y001 = Y001; // ++itime; itime = 1; goto lable220; }//if110 //與小圓相交-下面的:old點在 小圓(兩圓)內,而新點 在 小圓(c2)外(但在大圓內--即與小圓的(下弧)相交唄 else if ( isInTwoCircles(old1X001,old1Y001) && (isInC1Bigcircle(X001, Y001) && (!isInC2littlecircle(X001, Y001)) ) ) //if110elseif110 { arc01normal01origin001 = atan((400 - X001) / (Y001 - 400)); if (0 == arc01normal01origin001) { // arc01normal01origin001 = 0.00001; cou04t << "[2小圓外itim01e:" << itime << "]__"; itime = 1; } arc1normal01 = Pild / 2.0 + arc01normal01origin001; line2normal(hdc, arc1normal01, old1X001, old1Y001, RGB(0, 0, 100), 4);// 60);//藍 法線 fanshe01Arc01 = arc1arg02 - 2 * arc1normal01; reflecteAng01 = Pild- fanshe01Arc01; line2normal(hdc, reflecteAng01, old1X001, old1Y001, RGB(0, 200, 0), 6);// 90);//綠試畫反射線 0, 0, 200)); arc1arg02 = reflecteAng01; cou04t << "[2小圓外itim2e:" << itime << "]_"; itime = 1; //這時回去,不用新點X001..!用old1X001等 line2normal(hdc, arc1normal01, old1X001, old1Y001, RGB(0,0,200)); goto lable220; }//if110elseif110 //與大圓相交//下面的:old點在 兩圓(大圓、小圓)內,而新點 跑在 大圓外(但在小圓內--即與大圓(C1)相交 else if (isInTwoCircles(old1X001,old1Y001) && ( !isInC1Bigcircle(X001,Y001)&& (isInC2littlecircle(X001,Y001) ) ) )//if110elseif120 { arc01normal01origin001 = atan((400 - X001) / (Y001 - 0)); arc1normal01 = -(Pild / 2.0 - arc01normal01origin001); line2normal(hdc, arc1normal01, old1X001, old1Y001, RGB(0, 0, 255), 9);//藍 法線 fanshe01Arc01 = Pild + arc1arg02 - 2 * arc1normal01; reflecteAng01 = - fanshe01Arc01; arc1arg02 = reflecteAng01; line2normal(hdc, reflecteAng01, old1X001, old1Y001, RGB(255, 200, 0), 5);//黃試畫反射線 0, 0, 200)); line2normal(hdc, reflecteAng01, X001, Y001, RGB(0, 200, 0), 10);//綠試畫反射線 0, 0, 200)); cou04t << "[itime:" << itime << "]_"; cou04t << "[跑到大圓外itime:" << itime << "]__"; itime = 1; //這時回去,不用新點X001,Y001 ++itime; // old1X001 = X001; old1Y001 = Y001; // X001 = old1X001; Y001 = old1Y001; goto lable220; }//if110elseif120 //Old點(還)在兩圓內, (而)新點X001,Y001在兩圓外了 else if ( isInTwoCircles(old1X001,old1Y001) &&( !isInC1Bigcircle(X001, Y001) && !(isInC2littlecircle(X001, Y001) ) ) )//if110elseif130 { lable450: //迭代找交點(找有 1圓相交了) mid01X01 = (X001 + old1X001) / 2; mid01Y01 = (X001 + old1Y001) / 2; if (isInTwoCircles(mid01X01, mid01Y01)) { old1X001 = mid01X01; old1Y001 = mid01Y01; cout << "[old1X001:" << old1X001 << "]-"; cout << "[old1Y001:" << old1Y001 << "]; "; cout << "[X001:" << X001 << "]-"; cout << "[Y001:" << Y001 << "]; "; cout << "[mid01X01:" << mid01X01 << "]-"; cout << "[mid01Y01:" << mid01Y01 << "]; "; goto lable450; }//if550 else { //此時:mid 點 (都)在 兩圓外了? X001 = mid01X01; //退回半(中間點) Y001 = mid01Y01; goto lable330; //總之,要 一腳old在兩圓內,而一腳(X001,Y001)在單圓外,發生反射,才跳出 lable330到本段 程序。 }//if550else560 //迭代找交點(哪個圓 先相交) }//if110elseif130 else ////if110else240 { mid01X01 = (X001 + old1X001) / 2; mid01Y01 = (X001 + old1Y001) / 2; goto lable330; }//if110else240 lable420: old1X001 = X001; old1Y001 = Y001; if (itime <= linelength) { goto lable110; } // } while (true);//循環光走(光線前進)并反射等 }//int light01line03(HDC hdc, double arc1arg01, unsigned long linelength, double x0, double y0 // ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看