本文整理汇总了C#中Microsoft.Office.Interop.Visio.DrawLine方法的典型用法代码示例。如果您正苦于以下问题:C# Microsoft.Office.Interop.Visio.DrawLine方法的具体用法?C# Microsoft.Office.Interop.Visio.DrawLine怎么用?C# Microsoft.Office.Interop.Visio.DrawLine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Microsoft.Office.Interop.Visio
的用法示例。
在下文中一共展示了Microsoft.Office.Interop.Visio.DrawLine方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RenderPie
public IVisio.Shape RenderPie( IVisio.Page page)
{
if (this.Angle == 0.0)
{
var p1 = this.GetPointAtRadius(this.Center, this.Radius, this.SectorStartAngle);
return page.DrawLine(this.Center, p1);
}
else if (this.Angle >= 2*System.Math.PI)
{
var A = this.Center.Add(-this.Radius, -this.Radius);
var B = this.Center.Add(this.Radius, this.Radius);
var rect = new VA.Drawing.Rectangle(A, B);
var shape = page.DrawOval(rect);
return shape;
}
else
{
int degree;
var pie_bez = this.GetShapeBezierForPie(out degree);
// Render the bezier
var doubles_array = VA.Drawing.Point.ToDoubles(pie_bez).ToArray();
var pie_slice = page.DrawBezier(doubles_array, (short)degree, 0);
return pie_slice;
}
}
示例2: RenderDoughnut
public IVisio.Shape RenderDoughnut(IVisio.Page page)
{
double total_angle = this.Angle;
if (total_angle == 0.0)
{
var p1 = this.GetPointAtRadius(this.Center, this.SectorStartAngle, this.InnerRadius);
var p2 = this.GetPointAtRadius(this.Center, this.SectorStartAngle, this.Radius);
var shape = page.DrawLine(p1, p2);
return shape;
}
else if (total_angle >= System.Math.PI)
{
var outer_radius_point = new VA.Drawing.Point(this.Radius, this.Radius);
var C = this.Center - outer_radius_point;
var D = this.Center + outer_radius_point;
var outer_rect = new VA.Drawing.Rectangle(C, D);
var inner_radius_point = new VA.Drawing.Point(this.InnerRadius, this.InnerRadius);
var A = this.Center - inner_radius_point - C;
var B = this.Center + inner_radius_point - C;
var inner_rect = new VA.Drawing.Rectangle(A, B);
var shape = page.DrawOval(outer_rect);
shape.DrawOval(inner_rect.Left, inner_rect.Bottom, inner_rect.Right, inner_rect.Top);
return shape;
}
else
{
int degree;
var thickarc = this.GetShapeBezierForDoughnut(out degree);
// Render the bezier
var doubles_array = VA.Drawing.Point.ToDoubles(thickarc).ToArray();
var pie_slice = page.DrawBezier(doubles_array, (short)degree, 0);
return pie_slice;
}
}
示例3: Render
public void Render(IVisio.Page page)
{
this.TotalMarginWidth = this.Rectangle.Width*(0.10);
int num_points = this.DataPoints.Count;
double bar_spacing = num_points > 1 ? (this.Rectangle.Width-this.TotalBarWidth)/num_points : 0.0;
// Calculate min & max which will be used many times later
double max = this.DataPoints.Select(i => i.Value).Max();
double min = this.DataPoints.Select(i => i.Value).Min();
var range = ChartUtil.GetValueRangeDistance(min, max);
// Determine the leftmost part of the drawing area
double base_x = this.Rectangle.Left + (this.TotalMarginWidth / 2.0);
// Determine the baseline height a.k.a the y axis location
double base_y = this.Rectangle.Bottom;
if (min < 0.0)
{
// if the min value is negative then we have to "raise" the baseline to accomodate it
base_y += System.Math.Abs(this.Rectangle.Height * (min / range));
}
var category_axis_start_point = new Drawing.Point(this.Rectangle.Left, base_y);
var category_axis_end_point = new Drawing.Point(this.Rectangle.Right, base_y);
var category_axis_shape = page.DrawLine(category_axis_start_point, category_axis_end_point);
double cur_x = base_x;
var points = new List<Drawing.Point>();
for (int i = 0; i < this.DataPoints.Count; i++)
{
if (i == 0)
{
points.Add( new Drawing.Point(cur_x,base_y));
}
var p = this.DataPoints[i];
var value_height = System.Math.Abs(this.Rectangle.Height*(p.Value/range));
if (p.Value >= 0.0)
{
points.Add(new Drawing.Point(cur_x, base_y+value_height));
}
else
{
points.Add(new Drawing.Point(cur_x , base_y - value_height));
}
if (i == this.DataPoints.Count - 1)
{
points.Add(new Drawing.Point(cur_x, base_y));
}
cur_x += bar_spacing;
}
points.Add(new Drawing.Point(base_x, base_y));
var area_shape = page.DrawPolyline(points);
var allshapes = this.DataPoints.Select(dp => dp.VisioShape).Where(s => s != null).ToList();
allshapes.Add(category_axis_shape);
ChartUtil.GroupShapesIfNeeded(page, allshapes);
}
示例4: Render
public void Render(IVisio.Page page)
{
this.TotalMarginWidth = this.Rectangle.Width*(0.10);
this.TotalBarSpacingWidth = this.Rectangle.Width * (0.10);
this.TotalBarWidth = this.Rectangle.Width*(0.80);
int num_points = this.DataPoints.Count;
double bar_spacing = num_points > 1 ? this.TotalBarSpacingWidth/num_points : 0.0;
double bar_width = num_points > 0 ? this.TotalBarWidth/num_points : this.TotalBarWidth;
double cur_x = this.Rectangle.Left + (this.TotalMarginWidth/2.0);
double max = this.DataPoints.Select(i => i.Value).Max();
double min = this.DataPoints.Select(i => i.Value).Min();
var range = ChartUtil.GetValueRangeDistance(min, max);
double base_y = this.Rectangle.Bottom;
if (min < 0.0)
{
base_y += System.Math.Abs(this.Rectangle.Height * (min / range));
}
var category_axis_start_point = new Drawing.Point(this.Rectangle.Left, base_y);
var category_axis_end_point = new Drawing.Point(this.Rectangle.Right, base_y);
var category_axis_shape = page.DrawLine(category_axis_start_point, category_axis_end_point);
foreach (var p in this.DataPoints)
{
var value_height = System.Math.Abs(this.Rectangle.Height*(p.Value/range));
Drawing.Point bar_p0;
Drawing.Point bar_p1;
if (p.Value >= 0.0)
{
bar_p0 = new Drawing.Point(cur_x, base_y);
bar_p1 = new Drawing.Point(cur_x + bar_width, base_y + value_height);
}
else
{
bar_p0 = new Drawing.Point(cur_x, base_y - value_height);
bar_p1 = new Drawing.Point(cur_x + bar_width, base_y);
}
var bar_rect = new Drawing.Rectangle(bar_p0, bar_p1);
var shape = page.DrawRectangle(bar_rect);
p.VisioShape = shape;
if (p.Label != null)
{
shape.Text = p.Label;
}
cur_x += bar_width + bar_spacing;
}
var allshapes = this.DataPoints.Select(dp => dp.VisioShape).Where(s => s != null).ToList();
allshapes.Add(category_axis_shape);
ChartUtil.GroupShapesIfNeeded(page, allshapes);
}
示例5: DrawCable
/// <summary>
/// This method is drawing schema for single cable
/// </summary>
/// <param name="aPage">page to draw on</param>
/// <param name="aCableInfo">information about cable to draw</param>
/// <param name="aPosY">vertical position in which schema should start</param>
/// <returns>ertical position after drawing</returns>
private double DrawCable( Visio.Page aPage, CableInfo aCableInfo, double aPosY )
{
if( aCableInfo.CoreNo == 0 )
aCableInfo.CoreInfo.Add( new CoreInfo( Database.DbElement.GetElement(), aCableInfo ) );
double _cableHeight = aCableInfo.CoreNo * mCoreHeight;
Visio.Shape _newShape = aPage.DrawLine( mCablePosX, aPosY - _cableHeight / 2.0, mCablePosX + mCableWidth, aPosY - _cableHeight / 2.0 );
SetTextProperties( _newShape, aCableInfo.CableName + Environment.NewLine + aCableInfo.ComponentName, FONT_SIZE, (int)Visio.VisCellVals.visHorzCenter );
_newShape = aPage.DrawLine( mCablePosX, aPosY, mCablePosX, aPosY - _cableHeight );
_newShape = aPage.DrawLine( mCablePosX + mCableWidth, aPosY, mCablePosX + mCableWidth, aPosY - _cableHeight );
int _lastBeginEqui = 0, _lastEndEqui = 0, _lastBeginElconn = 0, _lastEndElconn = 0, _current = 0;
string _lastBeginEquiName = string.Empty, _lastEndEquiName = string.Empty, _lastBeginElconnName = string.Empty, _lastEndElconnName = string.Empty;
foreach( CoreInfo _core in aCableInfo.CoreInfo )
{
//draw core boxes
_newShape = aPage.DrawRectangle( mCablePosX - mCoreWidth - mSpaceBetween, aPosY - _current * mCoreHeight, mCablePosX - mSpaceBetween, aPosY - ( _current + 1 ) * mCoreHeight );
SetTextProperties( _newShape, _core.CoreName, "6pt", (int)Visio.VisCellVals.visHorzCenter );
_newShape = aPage.DrawRectangle( mCablePosX + mCableWidth + mSpaceBetween, aPosY - _current * mCoreHeight, mCablePosX + mCableWidth + mSpaceBetween + mCoreWidth, aPosY - ( _current + 1 ) * mCoreHeight );
SetTextProperties( _newShape, _core.CoreName, "6pt", (int)Visio.VisCellVals.visHorzCenter );
//draw pin boxes
_newShape = aPage.DrawRectangle( mCablePosX - ( mCoreWidth + mSpaceBetween ) * 2, aPosY - _current * mCoreHeight, mCablePosX - mCoreWidth - mSpaceBetween * 2, aPosY - ( _current + 1 ) * mCoreHeight );
SetTextProperties( _newShape, _core.StartPin, "6pt", (int)Visio.VisCellVals.visHorzCenter );
_newShape = aPage.DrawRectangle( mCablePosX + mCableWidth + mSpaceBetween * 2 + mCoreWidth, aPosY - _current * mCoreHeight, mCablePosX + mCableWidth + ( mSpaceBetween + mCoreWidth ) * 2, aPosY - ( _current + 1 ) * mCoreHeight );
SetTextProperties( _newShape, _core.EndPin, "6pt", (int)Visio.VisCellVals.visHorzCenter );
//check/draw elconns
if( _core.StartElconn == string.Empty || _lastBeginElconnName != _core.StartElconn )
{
if( _current > 0 )
{
double _posX = mCablePosX - ( mSpaceBetween + mCoreWidth ) * 2;
double _posY = aPosY - _lastBeginElconn * mCoreHeight;
//draw elconn
_newShape = aPage.DrawRectangle( _posX - mElconnWidth, _posY, _posX, _posY - ( _current - _lastBeginElconn ) * mCoreHeight );
SetTextProperties( _newShape, _lastBeginElconnName, "6pt", (int)Visio.VisCellVals.visHorzCenter );
_lastBeginElconn = _current;
}
_lastBeginElconnName = _core.StartElconn;
}
if( _core.EndElconn == string.Empty || _lastEndElconnName != _core.EndElconn )
{
if( _current > 0 )
{
//draw elconn
double _posX = mCablePosX + ( mSpaceBetween + mCoreWidth ) * 2 + mCableWidth;
double _posY = aPosY - _lastEndElconn * mCoreHeight;
//draw elconn
_newShape = aPage.DrawRectangle( _posX, _posY, _posX + mElconnWidth, _posY - ( _current - _lastEndElconn ) * mCoreHeight );
SetTextProperties( _newShape, _lastEndElconnName, "6pt", (int)Visio.VisCellVals.visHorzCenter );
_lastEndElconn = _current;
}
_lastEndElconnName = _core.EndElconn;
}
//check/draw equips
if( _core.StartEqui == string.Empty || _lastBeginEquiName != _core.StartEqui )
{
if( _current > 0 )
{
//draw equi
double _posX = mCablePosX - ( mSpaceBetween + mCoreWidth ) * 2 - mElconnWidth;
double _posY = aPosY - _lastBeginEqui * mCoreHeight;
_newShape = aPage.DrawRectangle( _posX - mEquiWidth, _posY, _posX, _posY - ( _current - _lastBeginEqui ) * mCoreHeight );
SetTextProperties( _newShape, _lastBeginEquiName, "6pt", (int)Visio.VisCellVals.visHorzCenter );
_lastBeginEqui = _current;
}
_lastBeginEquiName = _core.StartEqui;
}
if( _core.EndEqui == string.Empty || _lastEndEquiName != _core.EndEqui )
{
if( _current > 0 )
{
//draw equi
double _posX = mCablePosX + ( mSpaceBetween + mCoreWidth ) * 2 + mCableWidth + mElconnWidth;
double _posY = aPosY - _lastEndEqui * mCoreHeight;
_newShape = aPage.DrawRectangle( _posX, _posY, _posX + mEquiWidth, _posY - ( _current - _lastEndEqui ) * mCoreHeight );
SetTextProperties( _newShape, _lastEndEquiName, "6pt", (int)Visio.VisCellVals.visHorzCenter );
_lastEndEqui = _current;
}
_lastEndEquiName = _core.EndEqui;
}
_current++;
}
//draw last elconns
double _pX = mCablePosX - ( mSpaceBetween + mCoreWidth ) * 2;
double _pY = aPosY - _lastBeginElconn * mCoreHeight;
//.........这里部分代码省略.........