亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shapes.cpp

?? wxWidgets 2.8.9 Downloads
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
    /*        Formula: ((w/2) / h) = w1 / h1        w1 = ((w/2) / h) * h1;    */    double ratio = ((w/2.0) / h) ;    double w1 = ratio * h1;    points[0] = wxPoint(0  ,  (int) (- h / 2 ));    points[1] = wxPoint( (int) w1,  (int) (- h / 2 + h1));    points[2] = wxPoint( (int) -w1, (int) (- h / 2 + h1));    DrawPolygon(3, points);    delete[] points;    CalculateSize();    SetAttachmentMode(ATTACHMENT_MODE_BRANCHING);    SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB);    SetCentreResize(false);}IMPLEMENT_DYNAMIC_CLASS(csSemiCircleShape, wxDrawnShape)csSemiCircleShape::csSemiCircleShape(){    // Zero degrees    DrawAtAngle(oglDRAWN_ANGLE_0);    double w = csSTANDARD_SHAPE_WIDTH;    double h = w/2.0;    SetDrawnPen(wxTRANSPARENT_PEN);    SetDrawnBrush(wxTRANSPARENT_BRUSH);    // Draw a dummy rectangle that will be used for calculating the    // bounding box, since we can't calculate the bounding box for    // an arbitrary arc (not implemented)    DrawRectangle(wxRect((int)(-w/2.0), (int)(-h/2.0), (int)(w), (int)(h)));    SetDrawnPen(wxBLACK_PEN);    wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID);    SetDrawnBrush(brush);    DrawEllipticArc(wxRect((int)(-w/2), (int)(-h/2), (int)(w), (int)(2*h)), 0.0, 180.0);    DrawLine(wxPoint((int)(-w/2), (int)(h/2)), wxPoint((int)(w/2), (int)(h/2)));    CalculateSize();    /// 90 degrees    w = csSTANDARD_SHAPE_WIDTH/2;    h = csSTANDARD_SHAPE_WIDTH;    DrawAtAngle(oglDRAWN_ANGLE_90);    SetDrawnPen(wxTRANSPARENT_PEN);    SetDrawnBrush(wxTRANSPARENT_BRUSH);    DrawRectangle(wxRect((int)(-w/2), (int)(-h/2), (int)(w), (int)(h)));    SetDrawnPen(wxBLACK_PEN);    SetDrawnBrush(brush);    DrawEllipticArc(wxRect((int)(-w/2 - w), (int)(-h/2), (int)(2*w), (int)(h)), 270.0, 90.0);    DrawLine(wxPoint((int)(-w/2), (int)(-h/2)), wxPoint((int)(-w/2), (int)(h/2)));    CalculateSize();    /// 180 degrees    DrawAtAngle(oglDRAWN_ANGLE_180);    w = csSTANDARD_SHAPE_WIDTH;    h = csSTANDARD_SHAPE_WIDTH/2;    SetDrawnPen(wxTRANSPARENT_PEN);    SetDrawnBrush(wxTRANSPARENT_BRUSH);    DrawRectangle(wxRect((int)(-w/2), (int)(-h/2), (int)(w), (int)(h)));    SetDrawnPen(wxBLACK_PEN);    SetDrawnBrush(brush);    DrawEllipticArc(wxRect((int)(-w/2), (int)(-h/2 - h), (int)(w), (int)(2*h)), 180.0, 0.0);    DrawLine(wxPoint((int)(-w/2), (int)(-h/2)), wxPoint((int)(w/2), (int)(-h/2)));    CalculateSize();    /// 270 degrees    DrawAtAngle(oglDRAWN_ANGLE_270);    w = csSTANDARD_SHAPE_WIDTH/2;    h = csSTANDARD_SHAPE_WIDTH;    SetDrawnPen(wxTRANSPARENT_PEN);    SetDrawnBrush(wxTRANSPARENT_BRUSH);    DrawRectangle(wxRect((int)(-w/2), (int)(-h/2), (int)(w), (int)(h)));    SetDrawnPen(wxBLACK_PEN);    SetDrawnBrush(brush);    DrawEllipticArc(wxRect((int)(-w/2), (int)(-h/2), (int)(2*w), (int)(h)), 90.0, 270.0);    DrawLine(wxPoint((int)(w/2),(int)(-h/2)), wxPoint((int)(w/2), (int)(h/2)));    CalculateSize();    // Reset to zero    DrawAtAngle(oglDRAWN_ANGLE_0);    CalculateSize();    SetAttachmentMode(ATTACHMENT_MODE_BRANCHING);    SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB);    SetCentreResize(false);}IMPLEMENT_DYNAMIC_CLASS(csCircleShape, wxCircleShape)csCircleShape::csCircleShape(){    SetPen(wxBLACK_PEN);    wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID);    SetBrush(brush);    SetSize(csSTANDARD_SHAPE_WIDTH*0.6, csSTANDARD_SHAPE_WIDTH*0.6);    SetAttachmentMode(ATTACHMENT_MODE_BRANCHING);    SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB);    SetCentreResize(false);}IMPLEMENT_DYNAMIC_CLASS(csCircleShadowShape, wxCircleShape)csCircleShadowShape::csCircleShadowShape(){    SetPen(wxBLACK_PEN);    wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID);    SetBrush(brush);    SetSize(csSTANDARD_SHAPE_WIDTH*0.6, csSTANDARD_SHAPE_WIDTH*0.6);    SetAttachmentMode(ATTACHMENT_MODE_BRANCHING);    SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB);    SetCentreResize(false);    SetShadowMode(SHADOW_RIGHT);}IMPLEMENT_DYNAMIC_CLASS(csOctagonShape, wxPolygonShape)csOctagonShape::csOctagonShape(){    SetPen(wxBLACK_PEN);    SetBrush(wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID));    double w = csSTANDARD_SHAPE_WIDTH*0.5;    double h = csSTANDARD_SHAPE_WIDTH*0.5;    double prop = h/3.0;    wxList* points = new wxList;    points->Append((wxObject*) new wxRealPoint(-w/2.0 + prop, -h/2.0));    points->Append((wxObject*) new wxRealPoint(w/2.0 - prop, -h/2.0));    points->Append((wxObject*) new wxRealPoint(w/2.0, -h/2.0 + prop));    points->Append((wxObject*) new wxRealPoint(w/2.0, h/2.0 - prop));    points->Append((wxObject*) new wxRealPoint(w/2.0 - prop, h/2.0));    points->Append((wxObject*) new wxRealPoint(-w/2.0 + prop, h/2.0));    points->Append((wxObject*) new wxRealPoint(-w/2.0, h/2.0 - prop));    points->Append((wxObject*) new wxRealPoint(-w/2.0, -h/2.0 + prop));    Create(points);    SetAttachmentMode(ATTACHMENT_MODE_BRANCHING);    SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB);    SetCentreResize(false);}// This is a transparent shape for drawing around other shapes.IMPLEMENT_DYNAMIC_CLASS(csGroupShape, wxRectangleShape)csGroupShape::csGroupShape(){    SetPen(wxThePenList->FindOrCreatePen(_T("BLACK"), 1, wxDOT));    SetBrush(wxTRANSPARENT_BRUSH);    SetSize(csSTANDARD_SHAPE_WIDTH, csSTANDARD_SHAPE_WIDTH);    SetCentreResize(false);}void csGroupShape::OnDraw(wxDC& dc){    wxRectangleShape::OnDraw(dc);}// Must modify the hit-test so it doesn't obscure shapes that are inside.bool csGroupShape::HitTest(double x, double y, int* attachment, double* distance){    *attachment = 0;    *distance = 0.0;    double width = 0.0, height = 0.0;    GetBoundingBoxMin(&width, &height);    double x1 = GetX() - (width/2.0);    double y1 = GetY() - (height/2.0);    double x2 = GetX() + (width/2.0);    double y2 = GetY() + (height/2.0);    double edgeTolerance = 4.0;    // Test each edge in turn    // Top/bottom edges    if (x >= x1 && x <= x2)    {        if ((y >= y1 - edgeTolerance) && (y <= y1 + edgeTolerance))            return true;        if ((y <= y2 + edgeTolerance) && (y >= y2 - edgeTolerance))            return true;    }    // Left/right edges    if (y >= y1 && y <= y2)    {        if ((x >= x1 - edgeTolerance) && (x <= x1 + edgeTolerance))            return true;        if ((x <= x2 + edgeTolerance) && (x >= x2 - edgeTolerance))            return true;    }    return false;}IMPLEMENT_DYNAMIC_CLASS(csTextBoxShape, wxRectangleShape)csTextBoxShape::csTextBoxShape(){    SetPen(wxTRANSPARENT_PEN);    SetBrush(wxTRANSPARENT_BRUSH);    SetSize(csSTANDARD_SHAPE_WIDTH, csSTANDARD_SHAPE_WIDTH/2.0);    SetAttachmentMode(ATTACHMENT_MODE_NONE);    SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB);    SetCentreResize(false);}IMPLEMENT_DYNAMIC_CLASS(csLineShape, wxLineShape)csLineShape::csLineShape(){}bool csLineShape::OnMoveMiddleControlPoint(wxDC& WXUNUSED(dc), wxLineControlPoint* lpt, const wxRealPoint& pt){    csDiagramView* view = ((csCanvas*)GetCanvas())->GetView();    // Temporarily set the new shape properties so we can copy it    lpt->SetX(pt.x); lpt->SetY(pt.y);    lpt->m_point->x = pt.x; lpt->m_point->y = pt.y;    wxLineShape* newShape = (wxLineShape*) this->CreateNewCopy();    // Now set them back again    lpt->SetX(lpt->m_originalPos.x); lpt->SetY(lpt->m_originalPos.y);    lpt->m_point->x = lpt->m_originalPos.x; lpt->m_point->y = lpt->m_originalPos.y;    view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand(_T("Move line point"), (csDiagramDocument*) view->GetDocument(),                new csCommandState(ID_CS_MOVE_LINE_POINT, newShape, this)));    return true;}wxLabelShape* csLineShape::OnCreateLabelShape(wxLineShape *parent, wxShapeRegion *region, double w, double h){    return new csLabelShape(parent, region, w, h);}#if 0bool csLineShape::OnLabelMovePre(wxDC& dc, wxLabelShape* labelShape, double x, double y, double old_x, double old_y, bool display){    csDiagramView* view = ((csCanvas*)GetCanvas())->GetView();    wxLineShape* newShape = (wxLineShape*) this->CreateNewCopy();    wxLineShape::OnLabelMovePre(dc, labelShape, x, y, old_x, old_y, display);    view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Move label", (csDiagramDocument*) view->GetDocument(),                new csCommandState(ID_CS_MOVE_LABEL, newShape, this)));  return true;}#endifIMPLEMENT_DYNAMIC_CLASS(csLabelShape, wxLabelShape)csLabelShape::csLabelShape(wxLineShape *parent, wxShapeRegion *region, double w, double h):  wxLabelShape(parent, region, w, h){}// TODO: not sure how intercept normal behaviour (OnMovePre) to make// label movement undo-able.void csLabelShape::OnEndDragLeft(double x, double y, int keys, int attachment){    wxLabelShape::OnEndDragLeft(x, y, keys, attachment);}// Menu for editing shapesvoid studioShapeEditProc(wxMenu& menu, wxCommandEvent& event){    wxShape* shape = (wxShape*) menu.GetClientData();    csDiagramView* view = ((csCanvas*)shape->GetCanvas())->GetView();    switch (event.GetId())    {        case ID_CS_EDIT_PROPERTIES:        {            csEvtHandler* handler1 = (csEvtHandler *)shape->GetEventHandler();            handler1->EditProperties();#if 0            csEvtHandler* handler1 = (csEvtHandler *)shape->GetEventHandler();            csLabelEditingDialog* dialog = new csLabelEditingDialog(shape->GetCanvas()->GetParent());            dialog->SetShapeLabel(handler1->m_label);            if (dialog->ShowModal() == wxID_CANCEL)            {                dialog->Destroy();                return;            }            wxString newLabel = dialog->GetShapeLabel();            dialog->Destroy();            wxShape* newShape = shape->CreateNewCopy();            csEvtHandler* handler2 = (csEvtHandler *)newShape->GetEventHandler();            handler2->m_label = newLabel;            view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Edit label", (csDiagramDocument*) view->GetDocument(),                new csCommandState(ID_CS_EDIT_LABEL, newShape, shape)));#endif            break;        }        case wxID_CUT:        {            wxList list;            list.Append(shape);            view->DoCut(list);            break;        }        case ID_CS_ROTATE_CLOCKWISE:        case ID_CS_ROTATE_ANTICLOCKWISE:        {            if (shape->IsKindOf(CLASSINFO(wxLineShape)))                break;            double theta = shape->GetRotation();            const double myPi = M_PI;            double ninetyDegrees = myPi/2.0;            wxString opStr;            if (event.GetId() == ID_CS_ROTATE_CLOCKWISE)            {                theta += ninetyDegrees;                opStr = _T("Rotate clockwise");            }            else            {                theta -= ninetyDegrees;                opStr = _T("Rotate anticlockwise");            }            if (theta >= 2.0*myPi || theta < 0.0)                theta = 0.0;            wxShape* newShape = shape->CreateNewCopy();            newShape->Rotate(0.0, 0.0, theta);            wxList newShapes;            wxList oldShapes;            newShapes.Append(newShape);            oldShapes.Append(shape);            view->DoCmd(newShapes, oldShapes, event.GetId(), opStr);            break;        }        default:            break;    }}BEGIN_EVENT_TABLE(ShapeEditMenu, wxMenu)    EVT_COMMAND_RANGE(1, 65000, wxEVT_COMMAND_MENU_SELECTED, ShapeEditMenu::OnCommand)END_EVENT_TABLE()void ShapeEditMenu::OnCommand(wxCommandEvent& event){    studioShapeEditProc(*this, event);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人伦禁忌dvd放荡欲情| 国内成+人亚洲+欧美+综合在线| 色欧美日韩亚洲| 一本色道久久综合精品竹菊| 奇米影视7777精品一区二区| 6080yy午夜一二三区久久| 91美女片黄在线观看91美女| 色香色香欲天天天影视综合网| 色综合网色综合| 337p亚洲精品色噜噜噜| 精品久久久久av影院| 日韩一区二区三区在线视频| 日韩欧美国产综合| 国产精品久久久久久户外露出 | 亚洲国产另类精品专区| 亚洲成人av一区二区三区| 六月丁香婷婷色狠狠久久| www.亚洲激情.com| 日韩欧美中文字幕精品| 日本一区二区三级电影在线观看| 亚洲欧美色一区| 高清在线观看日韩| 日韩写真欧美这视频| 中文字幕在线不卡一区二区三区| 日韩高清一级片| 7878成人国产在线观看| 国产精品久久久久久久久快鸭| 亚洲免费观看高清| 中文字幕一区在线| 国产精品系列在线观看| 日韩精品在线看片z| 婷婷中文字幕一区三区| 欧美日韩中文另类| 亚洲成在人线在线播放| 欧美体内she精高潮| 国产精品久99| 91国产精品成人| 一级女性全黄久久生活片免费| av一区二区不卡| 久久精品综合网| 国产精品国产精品国产专区不片| 精品一区二区三区免费毛片爱| 在线观看网站黄不卡| 日韩久久一区二区| 欧美日韩国产免费一区二区| 亚洲电影一区二区三区| 5858s免费视频成人| 精品中文字幕一区二区| 国产日韩欧美激情| 99精品国产91久久久久久 | 高清视频一区二区| 91麻豆精东视频| 久久精品亚洲国产奇米99| 欧美国产97人人爽人人喊| 日韩电影在线一区二区| 久久99精品久久久久久久久久久久 | 福利电影一区二区| 亚洲自拍偷拍麻豆| wwwwxxxxx欧美| 欧美性videosxxxxx| 三级在线观看一区二区 | 成人美女在线视频| 欧美精品一区二区三区在线| 国产精品伦一区| 91精品婷婷国产综合久久| 成人av免费网站| 国产剧情一区二区三区| 性欧美大战久久久久久久久| 亚洲日本青草视频在线怡红院| 日韩欧美国产午夜精品| 91精品国产综合久久精品麻豆| av成人免费在线观看| 国产精品一二三| 国产精品一区二区三区四区| 日本不卡一二三| 亚洲午夜激情网页| 亚洲国产精品视频| 丝袜美腿高跟呻吟高潮一区| 婷婷成人综合网| 国产在线精品免费av| 国产精品自在欧美一区| eeuss鲁片一区二区三区在线看| 黄色精品一二区| 99久久精品免费看国产| 在线观看www91| 日韩一区二区三区免费看| 久久中文字幕电影| 国产精品久久精品日日| 久久久久国产成人精品亚洲午夜| 精品久久五月天| 一区二区激情小说| 狠狠色狠狠色综合系列| www.欧美日韩国产在线| 欧美日韩国产在线观看| 亚洲国产精品黑人久久久| 日韩理论片在线| 国产精品亚洲一区二区三区妖精 | 亚洲成人av资源| 久久久久国产一区二区三区四区 | 成人va在线观看| 91麻豆精品国产自产在线观看一区 | 国产精品一二一区| 91精品国产综合久久久久| 亚洲精品久久久蜜桃| 成人动漫av在线| 奇米色一区二区三区四区| 国产精品久久毛片a| 一本色道久久综合狠狠躁的推荐| 久久久夜色精品亚洲| 亚洲精品第一国产综合野| 久久99热99| jlzzjlzz欧美大全| 欧美老女人在线| 欧美成人一级视频| 一本大道综合伊人精品热热| 极品少妇一区二区| 日韩一区二区三区视频在线观看| 日韩经典一区二区| 欧美日韩和欧美的一区二区| 国产激情精品久久久第一区二区| 91免费看`日韩一区二区| 欧美一三区三区四区免费在线看 | 91麻豆精品国产91久久久使用方法| 一区二区日韩电影| 久久精品亚洲精品国产欧美 | 亚洲日本中文字幕区| 欧洲精品中文字幕| 国产a级毛片一区| 久久亚洲一级片| 欧美三级日本三级少妇99| 国产激情一区二区三区| 亚洲第一成人在线| 欧美不卡一区二区三区| 精品中文字幕一区二区小辣椒| www.成人在线| 日韩av网站在线观看| 中文一区在线播放| 欧美日韩国产大片| 91视频在线观看免费| 亚洲成人午夜电影| 中文字幕一区二区三区视频| 欧美一级二级在线观看| www.欧美精品一二区| 麻豆久久久久久久| 日韩电影免费在线观看网站| 国产精品护士白丝一区av| 在线免费亚洲电影| 日日摸夜夜添夜夜添亚洲女人| 国产欧美精品一区二区色综合| 日韩欧美不卡一区| 欧美哺乳videos| 91精品国产免费| 91麻豆精品91久久久久同性| 欧美日韩在线免费视频| 欧美精选午夜久久久乱码6080| 91老师片黄在线观看| 成人黄色a**站在线观看| 国产69精品久久99不卡| 97久久久精品综合88久久| 欧洲av在线精品| 日韩精品一区二区三区视频| 在线播放日韩导航| 日韩免费观看高清完整版| 欧美国产丝袜视频| 亚洲男人天堂一区| 五月天一区二区三区| 麻豆91小视频| 色欧美日韩亚洲| 欧美成人乱码一区二区三区| 中文字幕第一区综合| 一区二区三区欧美日| 麻豆一区二区三区| 日本精品视频一区二区三区| 欧美精品一区二区三区蜜桃| 亚洲女子a中天字幕| 久久超碰97中文字幕| 97久久超碰国产精品电影| 91精品国产综合久久福利软件| 精品久久久久久久久久久久包黑料 | 日韩电影在线看| 精品系列免费在线观看| 99综合电影在线视频| eeuss鲁片一区二区三区在线观看| 午夜欧美大尺度福利影院在线看| 无码av免费一区二区三区试看| 韩国毛片一区二区三区| 色av成人天堂桃色av| 一本大道久久精品懂色aⅴ| 蜜臀久久久久久久| 欧美视频精品在线观看| 一区二区三区四区国产精品| 视频一区二区国产| 紧缚捆绑精品一区二区| 日本精品视频一区二区三区| 中文字幕一区二区三区视频| 成人网页在线观看| 国产精品理伦片| 国产在线播放一区二区三区| 欧美成va人片在线观看| 日韩激情一二三区|