⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs_units.cpp

📁 qcad2.05可用于windows和linux的源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
              break;          case RS2::C7:              ret = RS_Vector(81.0, 114.0);              break;          case RS2::C8:              ret = RS_Vector(57.0, 81.0);              break;          case RS2::C9:              ret = RS_Vector(40.0, 57.0);              break;          case RS2::C10:              ret = RS_Vector(28.0, 40.0);              break;        */    case RS2::C5E:        ret = RS_Vector(163.0, 229.0);        break;    case RS2::Comm10E:        ret = RS_Vector(105.0, 241.0);        break;    case RS2::DLE:        ret = RS_Vector(110.0, 220.0);        break;    case RS2::Folio:        ret = RS_Vector(210.0, 330.0);        break;    //case RS2::Ledger:    //    ret = RS_Vector(432.0, 279.0);    //    break;    case RS2::Tabloid:        ret = RS_Vector(279.0, 432.0);        break;    case RS2::NPageSize:        ret = RS_Vector(0.0, 0.0);        break;    default:        break;    }    return ret;}/** * Gets the paper format which matches the given size. If no * format matches, RS2::Custom is returned. */RS2::PaperFormat RS_Units::paperSizeToFormat(const RS_Vector s) {    RS_Vector ts1;    RS_Vector ts2;    for (int i=(int)RS2::Custom; i<=(int)RS2::NPageSize; ++i) {        ts1 = RS_Units::paperFormatToSize((RS2::PaperFormat)i);        ts2 = RS_Vector(ts1.y, ts1.x);        if (ts1.distanceTo(s)<1.0e-4 || ts2.distanceTo(s)<1.0e-4) {            return (RS2::PaperFormat)i;        }    }    return RS2::Custom;}/** * Converts a paper format to a string (e.g. for a combobox). */RS_String RS_Units::paperFormatToString(RS2::PaperFormat p) {    RS_String ret = "";    switch (p) {    case RS2::Custom:        ret = "Custom";        break;    case RS2::Letter:        ret = "Letter";        break;    case RS2::Legal:        ret = "Legal";        break;    case RS2::Executive:        ret = "Executive";        break;    case RS2::A0:        ret = "A0";        break;    case RS2::A1:        ret = "A1";        break;    case RS2::A2:        ret = "A2";        break;    case RS2::A3:        ret = "A3";        break;    case RS2::A4:        ret = "A4";        break;    case RS2::A5:        ret = "A5";        break;    case RS2::A6:        ret = "A6";        break;    case RS2::A7:        ret = "A7";        break;    case RS2::A8:        ret = "A8";        break;    case RS2::A9:        ret = "A9";        break;    case RS2::B0:        ret = "B0";        break;    case RS2::B1:        ret = "B1";        break;    case RS2::B2:        ret = "B2";        break;    case RS2::B3:        ret = "B3";        break;    case RS2::B4:        ret = "B4";        break;    case RS2::B5:        ret = "B5";        break;    case RS2::B6:        ret = "B6";        break;    case RS2::B7:        ret = "B7";        break;    case RS2::B8:        ret = "B8";        break;    case RS2::B9:        ret = "B9";        break;    case RS2::B10:        ret = "B10";        break;        /*           case RS2::C0:               ret = "C0";               break;           case RS2::C1:               ret = "C1";               break;           case RS2::C2:               ret = "C2";               break;           case RS2::C3:               ret = "C3";               break;           case RS2::C4:               ret = "C4";               break;           case RS2::C5:               ret = "C5";               break;           case RS2::C6:               ret = "C6";               break;           case RS2::C7:               ret = "C7";               break;           case RS2::C8:               ret = "C8";               break;           case RS2::C9:               ret = "C9";               break;           case RS2::C10:               ret = "C10";               break;        */    case RS2::C5E:        ret = "C5E";        break;    case RS2::Comm10E:        ret = "Comm10E";        break;    case RS2::DLE:        ret = "DLE";        break;    case RS2::Folio:        ret = "Folio";        break;    //case RS2::Ledger:    //    ret = "Ledger";    //    break;    case RS2::Tabloid:        ret = "Tabloid";        break;    case RS2::NPageSize:        ret = "NPageSize";        break;    default:        break;    }    return ret;}/** * Converts a string to a paper format. */RS2::PaperFormat RS_Units::stringToPaperFormat(const RS_String& p) {    RS_String ls = p.lower();    RS2::PaperFormat ret = RS2::Custom;    if (p=="custom") {        ret = RS2::Custom;    } else if (p=="letter") {        ret = RS2::Letter;    } else if (p=="legal") {        ret = RS2::Legal;    } else if (p=="executive") {        ret = RS2::Executive;    } else if (p=="a0") {        ret = RS2::A0;    } else if (p=="a1") {        ret = RS2::A1;    } else if (p=="a2") {        ret = RS2::A2;    } else if (p=="a3") {        ret = RS2::A3;    } else if (p=="a4") {        ret = RS2::A4;    } else if (p=="a5") {        ret = RS2::A5;    } else if (p=="a6") {        ret = RS2::A6;    } else if (p=="a7") {        ret = RS2::A7;    } else if (p=="a8") {        ret = RS2::A8;    } else if (p=="a9") {        ret = RS2::A9;    } else if (p=="b0") {        ret = RS2::B0;    } else if (p=="b1") {        ret = RS2::B1;    } else if (p=="b2") {        ret = RS2::B2;    } else if (p=="b3") {        ret = RS2::B3;    } else if (p=="b4") {        ret = RS2::B4;    } else if (p=="b5") {        ret = RS2::B5;    } else if (p=="b6") {        ret = RS2::B6;    } else if (p=="b7") {        ret = RS2::B7;    } else if (p=="b8") {        ret = RS2::B8;    } else if (p=="b9") {        ret = RS2::B9;    } else if (p=="b10") {        ret = RS2::B10;    }    /*else if (p=="c0") {           ret = RS2::C0;       } else if (p=="c1") {           ret = RS2::C1;       } else if (p=="c2") {           ret = RS2::C2;       } else if (p=="c3") {           ret = RS2::C3;       } else if (p=="c4") {           ret = RS2::C4;       } else if (p=="c5") {           ret = RS2::C5;       } else if (p=="c6") {           ret = RS2::C6;       } else if (p=="c7") {           ret = RS2::C7;       } else if (p=="c8") {           ret = RS2::C8;       } else if (p=="c9") {           ret = RS2::C9;       } else if (p=="c10") {           ret = RS2::C10;       }*/    else if (p=="c5e") {        ret = RS2::C5E;    } else if (p=="comm10e") {        ret = RS2::Comm10E;    } else if (p=="dle") {        ret = RS2::DLE;    } else if (p=="folio") {        ret = RS2::Folio;    //} else if (p=="ledger") {    //    ret = RS2::Ledger;    } else if (p=="tabloid") {        ret = RS2::Tabloid;    } else if (p=="npagesize") {        ret = RS2::NPageSize;    }    return ret;}/** * Performs some testing for the math class. */void RS_Units::test() {    RS_String s;    double v;    /*       std::cout << "RS_Units::test: formatLinear (decimal):\n";       v = 0.1;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 3, false);       std::cout << "s: " << s << "\n";       assert(s=="0.1");       v = 0.01;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 3, false);       std::cout << "s: " << s << "\n";       assert(s=="0.01");       v = 0.001;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 3, false);       std::cout << "s: " << s << "\n";       assert(s=="0.001");       v = 0.009;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 2, false);       std::cout << "s: " << s << "\n";       assert(s=="0.01");       v = 0.005;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 2, false);       std::cout << "s: " << s << "\n";       assert(s=="0.01");       v = 0.0049999;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 2, false);       std::cout << "s: " << s << "\n";       assert(s=="0");       v = 0.1;       s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Decimal,                                 4, true);       std::cout << "s: " << s << "\n";       assert(s=="0.1mm");       std::cout << "RS_Units::test: formatLinear (fractional):\n";       v = 1.2;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 6, false);       std::cout << "s: " << s << "\n";       assert(s=="1 13/64");       v = 1.2;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 8, false);       std::cout << "s: " << s << "\n";       assert(s=="1 51/256");       v = 0.2;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 8, false);       std::cout << "s: " << s << "\n";       assert(s=="51/256");       v = 4.5;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 6, true);       std::cout << "s: " << s << "\n";       assert(s=="4 1/2");       v = 0.001;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 0, false);       std::cout << "s: " << s << "\n";       assert(s=="0");       v = 0.01;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 8, false);       std::cout << "s: " << s << "\n";       assert(s=="3/256");       v = 0.0078125;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 8, false);       std::cout << "s: " << s << "\n";       assert(s=="1/128");       v = 0.001;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 8, false);       std::cout << "s: " << s << "\n";       assert(s=="0");       v = 9.9999;       s = RS_Units::formatLinear(v, RS2::Inch, RS2::Fractional,                                 6, false);       std::cout << "s: " << s << "\n";       assert(s=="10");    */    for (v=11.9999; v<12.0001; v+=0.0000001) {        for (int prec=0; prec<=6; ++prec) {            s = RS_Units::formatLinear(v, RS2::Inch, RS2::Architectural,                                       prec, true);            std::cout << "prec: " << prec << " v: " << v << " s: " << s << "\n";        }    }    /*for (v=0.0; v<10.0; v+=0.001) {        s = RS_Units::formatLinear(v, RS2::Foot, RS2::Fractional,                                  1.0/128.0, true);        std::cout << "v: " << v << " s: " << s << "\n";}*/    /*    std::cout << "RS_Units::test: formatLinear (scientific):\n";    v = 0.001;    s = RS_Units::formatLinear(v, RS2::Millimeter, RS2::Scientific,                              0.0001, false);    std::cout << "s: " << s << "\n";    assert(s=="1.0e-3");    */    /*       std::cout << "RS_Units::test: formatAngle (deg / decimal):\n";       v = 0.0261799;       s = RS_Units::formatAngle(v, RS2::DegreesDecimal, 2);       std::cout << "s: " << s << "\n";       assert(s=="1.5

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -