Q
剪輯矩形用C#
4
A
回答
3
使用SetClip屬性很容易。
基本上你需要添加以下代碼:DrawLine的命令前右
if (!pre_defined)
{
g.SetClip(new Rectangle(x, y, 600, 300));
}
。其中x和y是您父矩形的座標。這很容易從你的功能中獲得。
這是工作的全功能:
public void drawRectangle(double Width, double Height, int A, bool pre_defined)
{
Graphics g = pictureBox1.CreateGraphics();
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
System.Drawing.Brush brush = new System.Drawing.SolidBrush(Color.FromArgb(r.Next(0, 251), r.Next(0, 251), r.Next(0, 251)));
Pen myPen = new Pen(brush, 2);
myPen.Width = 2;
int x = center.X;
int y = center.Y;
//top left
P[0] = new PointF((float)Math.Round(x + (Width/2) * Math.Cos(A) + (Height/2) * Math.Sin(A)), (float)Math.Round(y - (Height/2) * Math.Cos(A) + (Width/2) * Math.Sin(A)));
//top right
P[1] = new PointF((float)Math.Round(x - (Width/2) * Math.Cos(A) + (Height/2) * Math.Sin(A)), (float)Math.Round(y - (Height/2) * Math.Cos(A) - (Width/2) * Math.Sin(A)));
//bottom left
P[2] = new PointF((float)Math.Round(x + (Width/2) * Math.Cos(A) - (Height/2) * Math.Sin(A)), (float)Math.Round(y + (Height/2) * Math.Cos(A) + (Width/2) * Math.Sin(A)));
//bottom right
P[3] = new PointF((float)Math.Round(x - (Width/2) * Math.Cos(A) - (Height/2) * Math.Sin(A)), (float)Math.Round(y + (Height/2) * Math.Cos(A) - (Width/2) * Math.Sin(A)));
if (!pre_defined)
{
g.SetClip(new Rectangle(50, 50, 600, 300));
}
g.DrawLine(myPen, P[0], P[1]);
g.DrawLine(myPen, P[1], P[3]);
g.DrawLine(myPen, P[3], P[2]);
g.DrawLine(myPen, P[2], P[0]);
}
編輯:
這不是一個完整的例子,因爲這一個將只設置夾於母公司的寬度和高度。你需要修改你的函數來提供每個元素的寬度和高度。但現在我正在看你提供的圖片,它看起來比我想象的更復雜。
您可能最終將存儲所有隨機值的數組,並按大小排序,然後繪製所有元素。
相關問題
- 1. WPF剪輯矩形
- 2. 禁用ie8剪輯矩形
- 3. OpenGL 2D非矩形區域剪輯
- 4. 在XAML中使用矩形形狀作爲剪輯
- 5. C#重繪矩形邏輯
- 6. RectangleGeometry - 剪切矩形
- 7. OpenCV裁剪矩形
- 8. 如何從影片剪輯複製一個矩形的形狀?
- 9. 矩形內的Svg剪輯路徑不起作用
- 10. 當縮放時,使用畫布縮放的矩形剪輯
- 11. WPF剪輯形狀
- 12. 在JavaScript中剪裁矩形
- 13. 元文件剪裁矩形
- 14. C++,OpenGL剪輯
- 15. TCPDF使用相同轉換內的矩形多邊形旋轉和剪輯
- 16. C#剪輯linesegment與剪輯器庫
- 17. CSS圓形裁剪矩形圖像
- 18. 使用OpenCV裁剪最大的矩形
- 19. 使用矩形裁剪圖片
- 20. Matt Gemmell的NSBezierPath + StrokeExtensions在剪輯矩形之外繪製
- 21. SVG:剪輯路徑不能在矩形上工作
- 22. 拉斐爾剪輯矩形問題與文本在IE8/9
- 23. 使用c從圖像裁剪十字矩形#
- 24. C#&WPF - 通過使用矩形對象裁剪圖像
- 25. ClipperLib剪輯多個正方形與矩形產生1個結果
- 26. 如何使用CSS將矩形圖像裁剪爲正方形?
- 27. 使用非矩形形狀在flex中裁剪圖像
- 28. 如何從矩形疊加裁剪uiimageView?
- 29. 在opencv中裁剪矩形區域
- 30. com.android.camera.action.CROP調整裁剪矩形的大小
max和min,x和y。 –
你是什麼意思? – Wolfgang
如何確定矩形的父/子關係? –