全部。
我正在从事一个个人项目,以了解有关 C# 的更多信息。这个项目由一个逻辑图编辑器组成,我正在使用TreeView组件向用户显示可以在面板上创建的所有可能的对象以绘制逻辑图。
每次在 TreeView 中单击一个选项时,我都能够在面板内实例化新对象,但我仍然必须处理每个逻辑门绘图。到目前为止,我一直使用GraphicsPath类来定义 AND 和 NAND 门,一切都很顺利。但是,我在绘制 OR 门时遇到了一些麻烦。
我正在尝试按照 IEEE 标准以正确的比例绘制所有逻辑门,并且基于该标准,OR 门应绘制如下:
但是,我能够得到的是以下内容:
我为获得此结果而编写的代码是(此代码是我创建的自定义控件的一部分):
Pen pen = new Pen(Color.Black, 2);
GraphicsPath pathOR = new GraphicsPath();
pathOR.AddArc(7 - 2 * iHeight, 0 - iHeight / 2, 2 * iHeight, 2 * iHeight, 330, 60);
pathOR.AddLine(1, 1, 16, 1);
pathOR.AddArc(17 - iHeight, 1, 2 * iHeight, 2 * iHeight, 270, 56);
pathOR.AddArc(17 - iHeight, 0 - iHeight - 4, 2 * iHeight, 2 * iHeight, 33, 56);
pathOR.AddLine(16, iHeight - 3, 1, iHeight - 3);
e.Graphics.DrawPath(pen, pathOR);
iHeight
包含对象的高度。棘手的部分是最左边的弧线,但我已经尝试了很多变化,但没有解决问题。我究竟做错了什么?
感谢您的支持!