Code Bye

C#绘图

给出具体的几个点,绘制图形。本人的想法是根据给出的四个点绘制一个等腰梯形,但是,这四个点并不是像30、50这种具体数值,而是由其他变量计算出来的,绘出来的是一个三角形,且都经过那几个点,始终得不到梯形,想知道,有没有一种方法,指定就是绘梯形,而不会是三角形,望指导,急!这问题已经耽搁了本人一周了。
解决方案

20

你的
p2 = new PointF(Tsum[i] – 1 / 2 * R[i], h – R[i]);
p3 = new PointF(Tsum[i] + 1 / 2 * R[i], h – R[i]);
有问题
要这样
p2 = new PointF(Tsum[i] – 1.01f / 2 * R[i], h – R[i]);
p3 = new PointF(Tsum[i] + 1.01f / 2 * R[i], h – R[i]);
并且要用 g.DrawPolygon(new Pen(Color.Red, 2), points);
才是封闭的等腰梯形

20

                    p2 = new PointF(Tsum[i] – 1f / 2 * R[i], h – R[i]);
p3 = new PointF(Tsum[i] + 1f / 2 * R[i], h – R[i]);
得到的却是三角形 原因是:
p2 = new PointF(Tsum[i] – 1 / 2 * R[i], h – R[i]);
p3 = new PointF(Tsum[i] + 1 / 2 * R[i], h – R[i]);
中的 1 / 2 被当作整型数处理了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#绘图