/// <summary> /// 添加普通类型的棒线,是与对数类型相区别; /// </summary> /// <param name="jdstruc">绘制棒线的井段范围</param> /// <param name="drawht">绘制棒线的数据,hashtable的key为y值也就是井深,X为棒线的横向取值</param> private void AddNormalStickLineToFigure(JDStruc jdstruc, Hashtable drawht) { bool ifinkdc = false; double jdtop = jdstruc.JDtop; double jdbottom = jdstruc.JDBottom; KeDuChiItem drawkdc; LJJSPoint lrptstart; int kdccount = m_KDCList.Count; foreach (DictionaryEntry de in drawht) { ifinkdc = false; double xval = (double)de.Value; for (int i = 0; i < m_KDCList.Count; i++) { drawkdc = m_KDCList[i]; if (ZuoBiaoOper.IfInKeDuChi(xval, drawkdc))//假如棒线横向坐标值在刻度尺范围内则绘制棒线; { Layer.Layer_SetToCurrent(drawkdc.KName); lrptstart = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth); DrawStickLine(lrptstart, drawkdc, xval, (double)de.Key, jdtop); ifinkdc = true; break; } } if (ifinkdc == false)//棒线横向坐标不再刻度吃范围内,添加超界标注; { lrptstart = ZuoBiaoOper.UpdateLRStartPt(m_KDCList[kdccount - 1].KDir, jdstruc.JDPtStart, lineRoadEnvironment.LineRoadWidth); if (lineItemStruct.LineItemChaoJie == CJQXChaoJie.BiaoZhu)//添加标注信息; { AddChaoJieBZ(xval, jdstruc.JDPtStart, (double)de.Key, jdstruc.JDtop, FrameDesign.ValueCoordinate, m_KDCList[kdccount - 1], lineRoadEnvironment.LineRoadWidth); } } } }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { if (null == keDuChiItem) { return; } if (null == verBoundaryLineLst && verBoundaryLineLst.Count < 2) { return; } double jdtop = jdStruc.JDtop; double jdbottom = jdStruc.JDBottom; Hashtable drawht; if (jdtop < jdbottom) { try { drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), itemDesignStruc.XFieldName, itemDesignStruc.JSField);//..GetJoinAdjustLineItemPointCol(LineItemDrawDt, sqltxt, m_liStruc.LIFromFieldName, depth);//保存了绘图的点集;key为Y值,value为x值; } catch { MessageBox.Show("请检查数据表字段是否正确222"); return; } if (drawht.Count > 0) { AddCurvesHasHatch(jdStruc, drawht); } } }
public CurveHatch(JDStruc jdstruc, KeDuChiItem keDuChiItem, double lineRoadWidth) { this._jdstruc = jdstruc; this._keDuChiItem = keDuChiItem; this._jdptstart = ZuoBiaoOper.UpdateLRStartPt(keDuChiItem.KDir, jdstruc.JDPtStart, lineRoadWidth);//根据刻度尺方向获得起点; this._lineRoadWidth = lineRoadWidth; }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { if (null == firstVerBoundaryLineLst && firstVerBoundaryLineLst.Count < 2) { return; } double jdtop = jdStruc.JDtop; double jdbottom = jdStruc.JDBottom; Hashtable drawht; if (jdtop < jdbottom) { try { drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), itemDesignStruc.Xfield, itemDesignStruc.Yfield); } catch { MessageBox.Show("请检查数据表字段是否正确111"); return; } if (null != drawht && drawht.Count > 1) { AddMultiHatchCurve(jdStruc, drawht); } } }
private void AddJBQXItemToFigure(JDStruc jdstruc, List <SymbolItemStruc> syDrawingCol) { double adjacentVerZbdifference = 10; double lastVerZBHor = 0; double lastverZBVerHeigh = 0; double lastadjacentVerZbdifference = 0; for (int i = 0; i < syDrawingCol.Count; i++) { SymbolItemStruc symbldrawing = syDrawingCol[i]; LJJSPoint sybltopZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate); adjacentVerZbdifference = lastadjacentVerZbdifference + Math.Abs(lastverZBVerHeigh - sybltopZuoBiaoPt.YValue); if (adjacentVerZbdifference < 4) { lastVerZBHor = lastVerZBHor + jbqx_SymbolWidth; lastadjacentVerZbdifference = lastadjacentVerZbdifference + Math.Abs(lastverZBVerHeigh - sybltopZuoBiaoPt.YValue); } else { lastVerZBHor = 0; lastadjacentVerZbdifference = 0; } LJJSPoint syblpos = new LJJSPoint(sybltopZuoBiaoPt.XValue + lastVerZBHor, sybltopZuoBiaoPt.YValue); SymbolAdd.InsertBlock("JBQX", 1, 1, syblpos); int sybolcodecount = symbldrawing.sybolcodelist.Count; if (sybolcodecount == 3) { string yxcode = symbldrawing.sybolcodelist[0].Trim(); if (yxcode != "n" && yxcode != "N" && yxcode != "") { SymbolCodeClass sybloper = (SymbolCodeClass)HashUtil.FindObjByKey(yxcode, FillSymbolCode.SymbolCodeClassHt); if (null != sybloper) { // SymbolCodeClass sybloper = (SymbolCodeClass)FillSymbolCode.SymbolCodeClassHt[yxcode]; AddJBQXYXSymbolToFigure(syblpos, sybloper); } } string czcode = symbldrawing.sybolcodelist[1].Trim(); if (czcode != "n" && czcode != "N" && czcode != "") { SymbolCodeClass sybloper = (SymbolCodeClass)HashUtil.FindObjByKey(czcode, FillSymbolCode.SymbolCodeClassHt); // SymbolCodeClass sybloper = (SymbolCodeClass)FillSymbolCode.SymbolCodeClassHt[czcode]; if (null != sybloper) { AddJBQXCZSymbolToFigure(syblpos, sybloper); } } string yscode = symbldrawing.sybolcodelist[2].Trim(); LJJSCAD.Drawing.Text.LJJSText.AddHorCommonTextByLayer(yscode, new LJJSPoint(syblpos.XValue + jbqx_yshoroffset, syblpos.YValue), AttachmentPoint.MiddleLeft, jbqx_ysCodeTxt_Height, jbqx_bzFont); // ArxCSHelper.AddMText(yscode, 1.2, new LJJSPoint(syblpos.XValue + jbqx_yshoroffset, syblpos.YValue), AttachmentPoint.MiddleLeft, bztxtstyleid); } lastverZBVerHeigh = syblpos.YValue; } }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { ImageItemBuilderOper imageItemBuilderOper = new ImageItemBuilderOper(); imageItemBuilderOper.ImageItemDesignStruc = imageItemDesginStruc; List <ImageItemStruc> imagestruclist = imageItemBuilderOper.GetImageItemPerJDDrawData(jdStruc, ItemDataTable); AddStandardImageItemToFigure(jdStruc, imagestruclist); }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { SymbolItemBuilderOper symbolItemBuilderOper = new SymbolItemBuilderOper(); symbolItemBuilderOper.SymItemDesignStruc = symItemDesignStruc; List <SymbolItemStruc> yxpmstruclist = symbolItemBuilderOper.GetSymbolItemPerJDDrawData(jdStruc, ItemDataTable); AddStandardSymbolItemToFigure(jdStruc, yxpmstruclist); }
private void AddStandardImageItemToFigure(JDStruc jdStruc, List <ImageItemStruc> imageStrucList) { for (int i = 0; i < imageStrucList.Count(); i++) { ImageItemStruc tmpImageItemStruc = imageStrucList[i]; LJJSPoint imageBottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdStruc.JDPtStart, tmpImageItemStruc.BottomJS, jdStruc.JDtop, FrameDesign.ValueCoordinate); double imageDrawingHeigh = tmpImageItemStruc.JsHeight * 1000 * FrameDesign.ValueCoordinate; ImageHatch.AddRectImageHatch(imageBottomZuoBiaoPt, imageDrawingHeigh, this.lineRoadEnvironment.LineRoadWidth, tmpImageItemStruc.ImagePath, DrawCommonData.HatchScale, tmpImageItemStruc.AdditionImeLst); } }
private void AddCurvesHasHatch(JDStruc jdstruc, Hashtable drawht) { if (null != verBoundaryLineLst && verBoundaryLineLst.Count > 0) { CurveHatch curveHatch = new CurveHatch(jdstruc, keDuChiItem, this.lineRoadEnvironment.LineRoadWidth); List <LJJSPoint> drawPtCol = curveHatch.GetDrawZuoPtCol(drawht, verBoundaryLineLst[0].XValue); curveHatch.CurvesBuildExec(drawPtCol, itemDesignStruc.ItemHatch, verBoundaryLineLst); } }
private void AddDuiShuStickLineToFigure(KeDuChiItem duiShuKDC, JDStruc jdstruc, Hashtable drawht) { LJJSPoint lrptstart = ZuoBiaoOper.UpdateLRStartPt(duiShuKDC.KDir, jdstruc.JDPtStart, LineRoadEnvironment.LineRoadWidth); foreach (DictionaryEntry de in drawht) { double xval = (double)de.Value; DrawDuiShuStickLine(lrptstart, duiShuKDC, xval, (double)de.Key, jdstruc.JDtop); } }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { List <HatchRectDrawStrut> drawStructList = GetPerJDDrawStructLst(jdStruc); if (null != drawStructList && drawStructList.Count > 0) { for (int i = 0; i < drawStructList.Count; i++) { MyHatch.AddAreaHatch(DrawCommonData.activeDocument, drawStructList[i].FillArea, drawStructList[i].LjjsHatch); } } }
/// <summary> /// 获得主框架的高度; /// </summary> /// <returns></returns> public static double GetMainFrameHeight() { double mainFrameHeight = 0; int lineRoadCount = _lineRoadControlLst.Count(); if (_lineRoadControlLst != null && lineRoadCount > 0) { JDStruc lastJdStruc = LineRoadControlLst[lineRoadCount - 1].LineRoadJDStructLst.Last(); mainFrameHeight = Math.Abs(lastJdStruc.JDPtStart.YValue) + lastJdStruc.JDHeight; } return(mainFrameHeight); }
private LJJSPoint GetVerBoundaryEndPt(double XValue) { int lastjdcount = this.lineRoadEnvironment.JdDrawLst.Count(); if (lastjdcount > 0) { JDStruc jd = this.lineRoadEnvironment.JdDrawLst[lastjdcount - 1]; LJJSPoint endPt = new LJJSPoint(XValue, jd.JDPtStart.YValue + DrawCommonData.DirectionDown * jd.JDHeight); return(endPt); } else { return(null); } }
public static JDStruc GetJDStruc(LJJSPoint jdPtStart, double lrWidth, string jdStr) { JDStruc jdStruc = new JDStruc(); if (!string.IsNullOrEmpty(jdStr) && jdPtStart != null) { jdStruc.JDPtStart = jdPtStart; string[] jdarr = jdStr.Split(DrawCommonData.jdSplitter); if (jdarr.Count() > 1) { jdStruc.JDtop = StrUtil.StrToDouble(jdarr[0], "井段起始为空,请检查井段设计", "井段起始为非数值型,请检查井段设计"); jdStruc.JDBottom = StrUtil.StrToDouble(jdarr[1], "井段终止为空,请检查井段设计", "井段终止为非数值型,请检查井段设计"); jdStruc.JDHeight = JDOper.GetJDDrawingHeight(jdStruc.JDtop, jdStruc.JDBottom, FrameDesign.ValueCoordinate);//井深就是差值乘以比例尺 } } return(jdStruc); }
public override void DrawPerJDZMLine(DrawingElement.LJJSPoint ptstart, JDStruc jdStruc) { LJJSPoint tmpptstart = ptstart; double tmplineroadwidth = _lineroadwidth; if (_lineRoadModel.ZmLineSpace < Math.Abs(jdStruc.JDBottom - jdStruc.JDtop)) { int minZhengMiPtJs = ModeUtil.GetMinBeiShu(jdStruc.JDtop, _lineRoadModel.ZmLineSpace); LJJSPoint minZhengMiPt = ZuoBiaoOper.GetJSZuoBiaoPt(tmpptstart, minZhengMiPtJs, jdStruc.JDtop, FrameDesign.ValueCoordinate); List <LJJSPoint> dengfenptarr = ZuoBiaoOper.GetZongXiangDengFenPtArr(minZhengMiPt, -1, jdStruc.JDHeight - Math.Abs(minZhengMiPt.YValue - tmpptstart.YValue), _ZMLdengfenspace); dengfenptarr.Add(minZhengMiPt); foreach (LJJSPoint pt in dengfenptarr) { Line.BuildHorToRightBlackSolidLine(pt, _lineRoadModel.LineRoadWidth, _lineRoadModel.ZhengMiLineWidth, ""); } } }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { double jdtop = jdStruc.JDtop; //井段头 double jdbottom = jdStruc.JDBottom; //井段底 string txtitemid = textItemStruct.TxtItemName.Replace("_", ""); //绘图项名称 txtitemid = txtitemid.Replace(" ", ""); //去掉空格 List <TextItemDrawStruc> txtitemdrawinglist = GetJoinAdjustTextItemDrawStrucList(jdtop, jdbottom); Layer.CreateAndSetCurrentLayer(txtitemid, textItemStruct.TxtColor);//创建一个层 AddTextItem addTextItem = AddPerJDTextItemFactory.CreateAddTextItemToFigureInstance(textItemStruct.TiStyle); addTextItem.textItemStruct = textItemStruct; addTextItem.lineRoadWidth = lineRoadEnvironment.LineRoadWidth; addTextItem.AddTextItemToFigure(jdStruc, txtitemdrawinglist); }
private List <HatchRectDrawStrut> GetPerJDDrawStructLst(JDStruc jdStruc) { LJJSPoint lrptstart = ZuoBiaoOper.UpdateLRStartPt(drawkdc.KDir, jdStruc.JDPtStart, lineRoadEnvironment.LineRoadWidth); double jdTop = jdStruc.JDtop; double jdBottom = jdStruc.JDBottom; List <HatchRectDrawStrut> hrdsLst = new List <HatchRectDrawStrut>(); if (null == itemDataTable || itemDataTable.Rows.Count < 1) { return(hrdsLst); } string sql = GetItemSqlTxt(jdTop.ToString(), jdBottom.ToString()); DataRow[] drs = itemDataTable.Select(sql, itemDesignStruc.Y_TopField + " ASC"); if (itemDesignStruc.hrItemSubStyle.Equals(HatchRectItemSubStyle.ColorField)) { foreach (DataRow dr in drs) { List <LJJSPoint> areaLst = GetFillAreaPtLst(lrptstart, jdTop, jdBottom, dr); string color = dr[itemDesignStruc.Color_FromFiled].ToString(); if (colorDic.ContainsKey(color)) { string colorvalue = colorDic[color]; LJJSHatch ljjsHatch = new LJJSHatch(colorvalue, bool.FalseString); HatchRectDrawStrut hrds = new HatchRectDrawStrut(areaLst, ljjsHatch); hrdsLst.Add(hrds); } } } else { foreach (DataRow dr in drs) { List <LJJSPoint> areaLst = GetFillAreaPtLst(lrptstart, jdTop, jdBottom, dr); LJJSHatch ljjsHatch = itemDesignStruc.ItemHatch; HatchRectDrawStrut hrds = new HatchRectDrawStrut(areaLst, ljjsHatch); hrdsLst.Add(hrds); } } return(hrdsLst); }
private void AddStandardSymbolItemToFigure(JDStruc jdstruc, List <SymbolItemStruc> syDrawingCol) { for (int i = 0; i < syDrawingCol.Count; i++) { SymbolItemStruc symbldrawing = syDrawingCol[i]; LJJSPoint sybltopZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate); LJJSPoint syblbottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthbottom, jdstruc.JDtop, FrameDesign.ValueCoordinate); LJJSPoint syblpos = ZuoBiaoOper.GetMidPtBetweenTwoPt(sybltopZuoBiaoPt, syblbottomZuoBiaoPt); for (int j = 0; j < symbldrawing.sybolcodelist.Count; j++) { double xscale = 1; double yscale = 1; string syblcode = symbldrawing.sybolcodelist[j].Trim(); if (syblcode != "n" && syblcode != "") { SymbolCodeClass sybloper = (SymbolCodeClass)HashUtil.FindObjByKey(syblcode, FillSymbolCode.SymbolCodeClassHt); if (null == sybloper) { continue; } if (Math.Abs(sybloper.symbolHeigh) > 0.01 && sybloper.ifZXEnlarge) { yscale = Math.Abs(sybltopZuoBiaoPt.YValue - syblbottomZuoBiaoPt.YValue) / sybloper.symbolHeigh; } if ((Math.Abs(sybloper.symbolWidth) > 0.01) && symItemDesignStruc.SyblIfHorFill) { xscale = this.lineRoadEnvironment.LineRoadWidth / sybloper.symbolWidth; } if (symItemDesignStruc.SymbolFramePro == SymbolFrame.DoubleParallel) { Line.BuildCommonHorLineByLayer(sybltopZuoBiaoPt, lineRoadEnvironment.LineRoadWidth, 0, DrawCommonData.DirectionRight); //.AddContinusHorLine(sybltopZuoBiaoPt, lineRoadEnvironment.LineRoadWidth, 0); Line.BuildCommonHorLineByLayer(syblbottomZuoBiaoPt, lineRoadEnvironment.LineRoadWidth, 0, DrawCommonData.DirectionRight); } // AddJoinAdjustItemObjId(CommonDrawing.InsertSymbolItem(sybloper.symbolcode, xscale, yscale, syblpos)); SymbolAdd.InsertBlock(sybloper.symbolcode, xscale, yscale, syblpos); } } } }
private void AddMultiHatchCurve(JDStruc jdStruc, Hashtable drawht) { if (null == kdcItem) { return; } if (null == drawht || drawht.Count < 1) { return; } CurveHatch curveHatch = new CurveHatch(jdStruc, kdcItem, this.lineRoadEnvironment.LineRoadWidth); if (null == firstVerBoundaryLineLst || firstVerBoundaryLineLst.Count < 2) { return; } List <LJJSPoint> drawPtCol = curveHatch.GetDrawZuoPtCol(drawht, firstVerBoundaryLineLst[0].XValue); if (null != itemDesignStruc.HatchOne && CurveHatch.TestBoundaryCurve(firstVerBoundaryLineLst)) { if (null != drawPtCol && drawPtCol.Count > 0) { curveHatch.CurvesBuildExec(drawPtCol, itemDesignStruc.HatchOne, firstVerBoundaryLineLst); } } if (null != itemDesignStruc.HatchTwo && itemDesignStruc.FenJieValueOne > 0 && CurveHatch.TestBoundaryCurve(secondVerBoundaryLineLst)) { List <LJJSPoint> drawPXcol = curveHatch.GetInterSectCol(drawPtCol, secondVerBoundaryLineLst[0], secondVerBoundaryLineLst[1], kdcItem.KDir); if (null != drawPXcol && drawPXcol.Count > 0) { curveHatch.CurvesBuildExec(drawPXcol, itemDesignStruc.HatchTwo, secondVerBoundaryLineLst); } } if (null != itemDesignStruc.HatchThree && itemDesignStruc.FenJieValueTwo > 0 && CurveHatch.TestBoundaryCurve(thirdVerBoundaryLineLst)) { List <LJJSPoint> drawPXcol = curveHatch.GetInterSectCol(drawPtCol, thirdVerBoundaryLineLst[0], thirdVerBoundaryLineLst[1], kdcItem.KDir); if (null != drawPXcol && drawPXcol.Count > 0) { curveHatch.CurvesBuildExec(drawPXcol, itemDesignStruc.HatchThree, thirdVerBoundaryLineLst); } } }
public override void AddPerJDDrawItem(JDStruc jdStruc, int index) { LJJSPoint ptStart; double jdtop = jdStruc.JDtop; double jdbottom = jdStruc.JDBottom; ptStart = jdStruc.JDPtStart; string subsql = SQLBuilder.GetSingleDepthSubSql(jdtop, jdbottom, this.itemDesignStruc.Main_GWJSField); DataRow[] drs = MainDataTb.Select(subsql, itemDesignStruc.Main_GWJSField + " ASC"); if (null != drs && drs.Length > 0) { foreach (DataRow dr in drs) { string yywz = dr[itemDesignStruc.Main_YYWZField].ToString(); double gwjs = (double)dr[itemDesignStruc.Main_GWJSField]; AddPerYYWZHatch(yywz, gwjs, ptStart, jdStruc.JDtop); } } }
public List <ulong> DrawRectFrame() { List <ulong> rectFrameLst = new List <ulong>(); double frameHeight = FrameControlData.GetMainFrameHeight(); double frameWidth = FrameControlData.GetMainFrameWidth(); _frameHeight = frameHeight; _frameWidth = frameWidth; LJJSPoint startPt = new LJJSPoint(DrawCommonData.xStart, DrawCommonData.yStart); DrawDirection ddMainFrame = new DrawDirection(); ddMainFrame.HorDirection = 1; ddMainFrame.VerDirection = -1; DrawDirection ddTitleFrame = new DrawDirection(); ddTitleFrame.HorDirection = 1; ddTitleFrame.VerDirection = 1; Rect.AddBlackRect(startPt, frameHeight, frameWidth, FrameDesign.PictureFrameLineWidth, ddMainFrame); Rect.AddBlackRect(startPt, FrameDesign.LineRoadTitleBarHeigh, frameWidth, FrameDesign.PictureFrameLineWidth, ddTitleFrame); if (FrameDesign.JdStrLst.Count() > 1 && FrameControlData.LineRoadControlLst.Count() > 0) { List <JDStruc> firstLineRoadJDStrucLst = FrameControlData.LineRoadControlLst[0].LineRoadJDStructLst; //fff for (int i = 0; i < firstLineRoadJDStrucLst.Count(); i++) //2560-2590 2660-2690 { JDStruc tmpJDStruc = firstLineRoadJDStrucLst[i]; double xStart = tmpJDStruc.JDPtStart.XValue; double yStart = tmpJDStruc.JDPtStart.YValue + DrawCommonData.DirectionDown * tmpJDStruc.JDHeight; LJJSPoint tmpstartPt = new LJJSPoint(xStart, yStart); Line.BuildHorToRightBlackSolidLine(tmpstartPt, frameWidth, FrameDesign.PictureFrameLineWidth, ""); tmpstartPt = new LJJSPoint(xStart, yStart + DrawCommonData.DirectionDown * FrameDesign.JdSpace); Line.BuildHorToRightBlackSolidLine(tmpstartPt, frameWidth, FrameDesign.PictureFrameLineWidth, ""); } } return(rectFrameLst); }
public static List <JDStruc> GetLineRoadJDLst(LJJSPoint lrPtStart, double lrWidth) { List <JDStruc> tmpJdStrucLst = new List <JDStruc>(); double xStart = lrPtStart.XValue; double yStart = lrPtStart.YValue; if (FrameDesign.JdStrLst != null) { for (int i = 0; i < FrameDesign.JdStrLst.Count(); i++) { LJJSPoint jdPtStart = new LJJSPoint(xStart, yStart); string tmpJdStr = FrameDesign.JdStrLst[i]; JDStruc tmpJdStruc = GetJDStruc(jdPtStart, lrWidth, tmpJdStr); tmpJdStrucLst.Add(tmpJdStruc); yStart = DrawCommonData.DirectionDown * (Math.Abs(yStart) + tmpJdStruc.JDHeight + FrameDesign.JdSpace); } } return(tmpJdStrucLst); //2560-2590 2660-2690 }
public override void DrawPerJDZMLine(DrawingElement.LJJSPoint ptstart, JDStruc jdStruc) //lineroaddrawingmodel.lineroadjdStruct -> 2560-2590,2660-2690 jdstruct { LJJSPoint tmpptstart = ptstart; double tmplineroadwidth = _lineroadwidth; int jstop = (int)jdStruc.JDtop; double mainKDSpace = ((jingShenDesignStruc.MainKDSpace * FrameDesign.YCoordinate) / (FrameDesign.XCoordinate * 1000));//主刻度间隔的长度,求出对应的实际井深长度;例如,设计5mm,对应实际井深为所求值; double minusVal = Math.Abs(jdStruc.JDtop - jstop); //here!!! if (jingShenDesignStruc.isLeftMainKDShow)//绘制左侧主刻度 { AddJSMainKDLine(jdStruc, tmpptstart, jingShenDesignStruc, jstop, mainKDSpace, minusVal); } if (jingShenDesignStruc.isRightMainKDShow)//绘制右侧主刻度 { tmpptstart = new LJJSPoint(ptstart.XValue + _lineroadwidth - jingShenDesignStruc.MainKDLength, ptstart.YValue); AddJSMainKDLine(jdStruc, tmpptstart, jingShenDesignStruc, jstop, mainKDSpace, minusVal); } }
private void AddYXPouMianToFigure(JDStruc jdstruc, List <SymbolItemStruc> yxpmStrucLst) { for (int i = 0; i < yxpmStrucLst.Count; i++) { SymbolItemStruc symbldrawing = yxpmStrucLst[i]; LJJSPoint sybltopZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate); LJJSPoint syblbottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart, symbldrawing.depthbottom, jdstruc.JDtop, FrameDesign.ValueCoordinate); LJJSPoint syblpos = ZuoBiaoOper.GetMidPtBetweenTwoPt(sybltopZuoBiaoPt, syblbottomZuoBiaoPt); for (int j = 0; j < symbldrawing.sybolcodelist.Count; j++) { double xscale = 1; double yscale = 1; string syblcode = symbldrawing.sybolcodelist[j].Trim(); if (syblcode != "n" && syblcode != "") { SymbolCodeClass sybloper = (SymbolCodeClass)FillSymbolCode.SymbolCodeClassHt[syblcode]; if (null == sybloper) { continue; } if (sybloper.ifZXEnlarge) { yscale = Math.Abs(sybltopZuoBiaoPt.YValue - syblbottomZuoBiaoPt.YValue); } else if (sybloper.ifFill) { xscale = sybloper.symbolWidth; yscale = Math.Abs(sybltopZuoBiaoPt.YValue - syblbottomZuoBiaoPt.YValue); } if (sybloper.symbolWidth > 0) { Rect.AddBlackRect(syblbottomZuoBiaoPt, Math.Abs(syblbottomZuoBiaoPt.YValue - sybltopZuoBiaoPt.YValue), sybloper.symbolWidth, 0, new DrawDirection(1, 1)); } SymbolAdd.InsertBlock(sybloper.symbolcode, xscale, yscale, syblpos); } } } }
public override void InitOtherItemDesign() { //设置刻度尺; List <KeDuChiItem> m_KDCList = (List <KeDuChiItem>)KeDuChiManage.LineItemKDCHt[ItemName]; if (null != m_KDCList && m_KDCList.Count > 0) { keDuChiItem = m_KDCList[0]; } else { return; } //设置补充线,从线道头开始,至线道末的垂直线; verBoundaryLineLst = new List <LJJSPoint>(); double xstart; if (itemDesignStruc.HatchPosition.Equals(MyCurveHatchPos.Left)) { xstart = this.LineRoadStartPt.XValue; } else { xstart = this.LineRoadStartPt.XValue + lineRoadEnvironment.LineRoadWidth; } LJJSPoint start = new LJJSPoint(xstart, this.LineRoadStartPt.YValue); verBoundaryLineLst.Add(start); int lastjdcount = this.lineRoadEnvironment.JdDrawLst.Count(); if (lastjdcount > 0) { JDStruc jd = this.lineRoadEnvironment.JdDrawLst[lastjdcount - 1]; LJJSPoint endPt = new LJJSPoint(xstart, jd.JDPtStart.YValue + DrawCommonData.DirectionDown * jd.JDHeight); verBoundaryLineLst.Add(endPt); } }
public override List <ulong> AddTextItemToFigure(JDStruc jdstruc, List <TextItemDrawStruc> textItemDrawStrucCol) { for (int i = 0; i < textItemDrawStrucCol.Count; i++) { TextItemDrawStruc currtidrawstruc = textItemDrawStrucCol[i]; LJJSPoint titopZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart , currtidrawstruc.depthtop, jdstruc.JDtop, FrameDesign.ValueCoordinate);//获取小段顶坐标 LJJSPoint tibottomZuoBiaoPt = ZuoBiaoOper.GetJSZuoBiaoPt(jdstruc.JDPtStart , currtidrawstruc.depthbottom, jdstruc.JDtop, FrameDesign.ValueCoordinate);//获取小段底坐标 //如果是横向排列则用线道宽度,如果是纵向排列需要分析小井段厚度 AddTxtItemDrawStrucToFigure(titopZuoBiaoPt, tibottomZuoBiaoPt , currtidrawstruc, lineRoadWidth, Math.Abs(titopZuoBiaoPt.YValue - tibottomZuoBiaoPt.YValue), textItemStruct, lineRoadWidth); if (textItemStruct.TextOutFrame == TxtItemOutFrame.DoubleParallel)//如果类型为双平行线类型则绘制双平行线 { TextItemOper.AddTiOutFrameParelLine(titopZuoBiaoPt, tibottomZuoBiaoPt, textItemStruct.TIOffset, textItemStruct.TxtOutFrameWidth); } } return(new List <ulong>()); }
private double AddJSMainKDLine(JDStruc jdStruc, LJJSPoint tmpptstart, JingShenDesignClass jingShenDesignStruc, int jstop, double mainKDSpace, double minusVal) { double minMainKDPtJs; double biaoZhuJS; if (minusVal < mainKDSpace) { minMainKDPtJs = jstop + mainKDSpace; } else { minMainKDPtJs = jstop + 1; } biaoZhuJS = minMainKDPtJs; List <LJJSPoint> dengfenptarr = new List <LJJSPoint>(); LJJSPoint minMainKDPt = ZuoBiaoOper.GetJSZuoBiaoPt(tmpptstart, minMainKDPtJs, jdStruc.JDtop, FrameDesign.ValueCoordinate); dengfenptarr.Add(minMainKDPt); dengfenptarr.AddRange(ZuoBiaoOper.GetZongXiangDengFenPtArr(minMainKDPt, -1, jdStruc.JDHeight - Math.Abs(minMainKDPt.YValue - tmpptstart.YValue), jingShenDesignStruc.MainKDSpace)); for (int i = 0; i < dengfenptarr.Count(); i++) { //1,绘制主刻度线; Line.BuildHorToRightBlackSolidLine(dengfenptarr[i], jingShenDesignStruc.MainKDLength, _lineRoadModel.ZhengMiLineWidth, ""); //2,添加井深标注; int tmp = i % jingShenDesignStruc.BiaoZhuSpace; if (tmp.Equals(0)) { DrawPerJDJSZMLineBiaoZhu(dengfenptarr[i], biaoZhuJS); //画右侧刻度的井深depth标注 } biaoZhuJS = biaoZhuJS + mainKDSpace; } ifAddBiaoZhu = true; return(minMainKDPtJs); }
public override void AddPerJDDrawItem(JDStruc jdStruc, int i) { double jdtop = jdStruc.JDtop; double jdbottom = jdStruc.JDBottom; Hashtable drawht; //里面装有所有点的 x y坐标值 key是y值即depth value是x值 List <Hashtable> drawhtList = null; //如果是P,则需要画两条线 list【0】是本来的线,【1】是基质线 if (jdtop < jdbottom) { /** * if (lineItemStruct.LIFromFieldName.Trim().Equals("P") == false) * { * drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.LIFromFieldName.Trim(), lineItemStruct.JsField.Trim());//..GetJoinAdjustLineItemPointCol(LineItemDrawDt, sqltxt, m_liStruc.LIFromFieldName, depth);//保存了绘图的点集;key为Y值,value为x值; * } * else //是P * { * drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.LIFromFieldName.Trim(), lineItemStruct.JsField.Trim()); * drawhtList = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.JsField.Trim(), lineItemStruct.LIFromFieldName.Trim(), "MSEJ"); * }**/ drawht = CurveItemDAL.GetCurveItemPointHt(ItemDataTable, jdtop.ToString(), jdbottom.ToString(), lineItemStruct.LIFromFieldName.Trim(), lineItemStruct.JsField.Trim());//..GetJoinAdjustLineItemPointCol(LineItemDrawDt, sqltxt, m_liStruc.LIFromFieldName, depth);//保存了绘图的点集;key为Y值,value为x值; if (drawht.Count > 0) { if (lineItemStruct.LineItemType.Equals(CJQXLineClass.StickLine))//棒图; { this.AddStickLineToFigure(jdStruc, drawht); } else //折线; { this.AddContinuousLineToFigure(jdStruc, drawht, i, drawhtList); } } } }
private void AddStickLineToFigure(JDStruc jdstruc, Hashtable drawht) { if (m_KDCList.Count == 0) { return; } if (drawht.Count < 1) { return; } if (m_KDCList[0].KStyle == KDCStyle.DuiShu) { drawht = HashUtil.MoveHashTableZeroValue(drawht); if (drawht.Count < 2) { return; } AddDuiShuStickLineToFigure(m_KDCList[0], jdstruc, drawht); } else { AddNormalStickLineToFigure(jdstruc, drawht); } }
abstract public List <ulong> AddTextItemToFigure(JDStruc jdstruc, List <TextItemDrawStruc> textItemDrawStrucCol);