public void DrawTo( Image img, ColorContour contour ) { Graphics g = Graphics.FromImage( img ); Pen p = new Pen( Color.Black ); int origin = contour.BmpMargin - 1; double unitX = (double)(contour.BmpWidth - 2*contour.BmpMargin - 1) / (contour.XNum - 1); double unitY = (double)(contour.BmpHeight- 2*contour.BmpMargin - 1) / (contour.YNum - 1); for( int i=0; i<contour.XNum; i++ ) { for( int j=0; j<contour.YNum; j++ ) { int x = (int)(i*unitX + 0.5); int y = (int)(j*unitY + 0.5); g.DrawRectangle( p, origin + x, origin + y, 2, 2 ); } } }
public void DrawTo( Image img, ColorContour contour, FieldSettings field ) { if( !contour.HasVectorData ) { throw new InvalidOperationException( "ベクトルデータはありません" ); } Graphics g = Graphics.FromImage( img ); Pen p = new Pen( field.Arrow.LineColor ); Brush b = new SolidBrush( field.Arrow.InnerColor ); PointF origin = new PointF( (float)contour.BmpMargin, (float)contour.BmpMargin ); float unitX = (float)(contour.BmpWidth - 2*contour.BmpMargin -1) / (contour.XNum - 1); float unitY = (float)(contour.BmpHeight- 2*contour.BmpMargin -1) / (contour.YNum - 1); Drawer d = new Drawer( g, field ); for( int i=0; i<contour.XNum; i++ ) { for( int j=0; j<contour.YNum; j++ ) { SizeF pt1 = new SizeF( i*unitX, (contour.YNum-1-j)*unitY ); d.DrawArrow( origin + pt1, contour.scrData[i][j], contour.uData[i][j], contour.vData[i][j] ); } } }