Тема: Формулы для вычисления координат центра тяжести плоской фигуры
Формулы найдены на основе формулы вычисления площади плоской фигуры. Код представленый ниже замечательно работает в VBA:
'Вычислить площадь по формуле: 'S=0.5[(X2Y1-X1Y2) + (X3Y2-X2Y3) + (X4Y3-X3Y4) +.....+ (X{n}Y{n-1}-X{n-1}Y{n}) + (X1Yn-XnY1)] 'Вычислить координаты центра тяжести по формулам: ' [(X2-X1)/2*(X2Y1-X1Y2)+(X3-X2)/2*(X3Y2-X2Y3)+(X4-X3)/2*(X4Y3-X3Y4)+...+(X{n}-X{n-1})/2*(X{n}Y{n-1}-X{n-1}Y{n})+(Xn-X1)/2*(X1Yn-XnY1)] 'Xцт=--------------------------------------------------------------------------------------------------------------------------------------- ' 1.5*[(X2Y1-X1Y2) + (X3Y2-X2Y3) + (X4Y3-X3Y4) +...+ (X{n}Y{n-1}-X{n-1}Y{n}) + (X1Yn-XnY1)] ' ' [(Y2-Y1)/2*(X2Y1-X1Y2)+(Y3-Y2)/2*(X3Y2-X2Y3)+(Y4-Y3)/2*(X4Y3-X3Y4)+...+(Y{n}-Y{n-1})/2*(X{n}Y{n-1}-X{n-1}Y{n})+(Yn-Y1)/2*(X1Yn-XnY1)] 'Yцт=--------------------------------------------------------------------------------------------------------------------------------------- ' 1.5*[(X2Y1-X1Y2) + (X3Y2-X2Y3) + (X4Y3-X3Y4) +...+ (X{n}Y{n-1}-X{n-1}Y{n}) + (X1Yn-XnY1)] 'Коллекция colТочкиКонтура состоит из точек n+1, т.е. замыкается начальной точкой dblСуммаX = 0: dblСуммаY = 0 For intНомТочки = 1 To intКолвоТочек - 1 vТочка1 = colТочкиКонтура(intНомТочки) vТочка2 = colТочкиКонтура(intНомТочки + 1) dblСлагаемое = vТочка2(0) * vТочка1(1) - vТочка1(0) * vТочка2(1) dblПлощадь = dblПлощадь + dblСлагаемое dblСуммаX = dblСуммаX + (vТочка1(0) + vТочка2(0)) / 2 * dblСлагаемое dblСуммаY = dblСуммаY + (vТочка1(1) + vТочка2(1)) / 2 * dblСлагаемое Next intНомТочки dblX = dblСуммаX / (1.5 * dblПлощадь) dblY = dblСуммаY / (1.5 * dblПлощадь) dblПлощадь = dblПлощадь / 2 TextBox2_Площадь = CStr(dblПлощадь) TextBox3_Xцт = CStr(dblX) TextBox4_Yцт = CStr(dblY) MsgBox "Площадь контура = " & dblПлощадь & vbLf & vbLf & _ "X ц.т.=" & dblX & vbLf & vbLf & _ "Y ц.т.=" & dblY, vbInformation, strНазваниеПрограммы
Помогите теперь для интереса найти формулы вычисления объёма 3-мерной фигуры ограниченной плоскостями и координат центра тяжести этой фигуры.
Кстати если найдёте ошибки в моём коде то обязательно напишите.
Ещё мне интересно как выводится формула вычисления площади плоской фигуры:
S=0.5[(X2Y1-X1Y2) + (X3Y2-X2Y3) + (X4Y3-X3Y4) +.....+ (X{n}Y{n-1}-X{n-1}Y{n}) + (X1Yn-XnY1)]
Кто это знает дайте ссылку на сайт или книжку.