请教高中几何高手,如何计算周长面积,各位高手帮忙! (200分)

  • 主题发起人 主题发起人 hukaijt
  • 开始时间 开始时间
H

hukaijt

Unregistered / Unconfirmed
GUEST, unregistred user!
在canvas上画线,有这2个东西,
RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer);
Ellipse(X1, Y1, X2, Y2: Integer);
画完以后我想计算画出来图形的周长和面积,
请问怎么根据这这个x y 参数来计算周长面积?
 
我想知道!
 
RoundRect画的是圆角矩形,只能求近似解!
Ellipse画的是圆和椭圆,可以直接用公式求!
 
这是吕大侠给出来的计算程序
http://www.delphibbs.com/delphibbs/dispq.asp?lid=654590
 
RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer);
这个图形的周长和面积怎么求得到!
 
YB_unique:
再看看剩下部分的圆角,它其实是一个椭圆被分成等大的四块构成四个圆角。
X3, Y3分别表示椭圆的宽和高///你这个说话对吗????我就是不知道这个东西!
 
首先要收回我上面的‘错误结论’,如果误人子弟,请接受我的Sorry!
我想造成错误的原因一是自己想当然,二是平时对这个函数因用得少,而对参数意义不是很熟悉的缘故。
一个教训,也希望对自己是一个经验。
好,回到正题,我的说法中“再看看剩下部分的圆角,它其实是一个椭圆被分成等大的四块构成四个圆角。
X3, Y3分别表示椭圆的宽和高”这句并没有错,错在“RoundRect函数是使用一个小椭圆来绘制圆角加上一
个矩形所构成”,而事实上是因为椭圆分成的圆角取代了矩形的四个角,这样实际图形应该是矩形加上椭圆
再减去被圆角取代的四个角(小矩形)的结构。因此我的算法中错误造成面积、周长都算大了。
更正如下:
面积:=abs((x2-x1)*(y2-y1))+pi*(x3/2)*(y3/2)-x3*y3
周长:=2*(abs(x2-x1)+abs(y2-y1)-x3-y3)+椭圆周长
椭圆周长你可以用割圆近似逼近法或者其级数表达式求解。
 
你也算lazy得可以,知道了RoundRect函数原型了你还要知道什么????
RoundRect函数是使用一个小椭圆来绘制圆角加上一个矩形所构成。
在它的参数中,X1, Y1, X2, Y2表示矩形的左上角和右下角的x、y轴坐标,这部分周长面积总不要
我教吧!再看看剩下部分的圆角,它其实是一个椭圆被分成等大的四块构成四个圆角。
X3, Y3分别表示椭圆的宽和高。而且X3, Y3是在0到矩形长、宽范围内有效。
OK,至此已经没什么好说的了!两块面积(周长)之和就为所求。
 
多人接受答案了。
 
椭圆的面积:

S=pi*a*b
带入长短半轴a,b即可

椭圆周长 :

http://www.delphibbs.com/delphibbs/dispq.asp?lid=533924

对于RoundRect,也就是圆角矩形,你首先要有一个模型的感念,自己画出来看看:

设定其中的椭圆长、短半轴分别为:a、b
矩形的长、宽为length、width

周长=椭圆周长+矩形的实际部分长度
椭圆周长如前面的回答,矩形周长不用说了吧?
矩形的实际部分长度:2*(length-2*a)+2*(width-2*b)

面积=裁剪出来的各个矩形面积+椭圆的面积(也就是四角的1/4椭圆面积的4倍)
裁剪出来的各个矩形面积=(length-2*a)*width+2*a*(width-2*b)
椭圆的面积=pi*a*b
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部