mong mọi người giúp mình bài này với. Mình chỉ cần thuật toán với ý tưởng thôi. Còn có code luôn thì thanks mọi người nhé. cám ơn mọi người nhiều
Cần giúp đỡ về ý tưởng cho bài toán hình học
Nếu bạn muốn vi phạm điều lệ của DNH và khóa bài!
Bài chỉ tích tổng diện tích tam giác thôi mà, cần gì ý tưởng và thuật toán? Nó ở Hình học cấp 3 (có khi là cấp 2, chả nhớ).
Có toạ độ thì tính được 3 cạnh. Có 3 cạnh rồi:
Tính diện tích tam giác khi biết 3 cạnh bằng công thức Heron.
S=\sqrt{p(p-a)(p-b)(p-c)}
p=\frac{(a+b+c)}{2}
hình học cấp 3 bạn nhé
nó giống như tìm “hợp” (trong py gọi là set) diện tích của tam giác đó bạn
N hình hợp lại đấy chứ ko phải chọn 1 hình trong số N hình.
tam giác nhỏ nằm trong tam giác lớn thì tính tam giác lớn
đúng rồi bạn ơi. mình bị lấn cấn trong tọa độ nên không làm được
có code nhưng mà có xài được ko
xài Boost.Geometry hàm union_
nha :V
compile hết 10 giây :V https://rextester.com/UXPGO13597
#include <iostream>
#include <iomanip>
#include <boost/geometry.hpp>
int main() {
namespace bg = boost::geometry;
using Point = bg::model::point<double, 2, bg::cs::cartesian>;
using Polygon = bg::model::polygon<Point>;
using Polygons = bg::model::multi_polygon<Polygon>;
int n;
double x1, y1, x2, y2, x3, y3;
std::cin >> n;
Polygons u;
while (std::cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3) {
Polygon p;
bg::append(p.outer(), Point(x1, y1));
bg::append(p.outer(), Point(x2, y2));
bg::append(p.outer(), Point(x3, y3));
bg::append(p.outer(), Point(x1, y1));
bg::correct(p);
Polygons tmp;
bg::union_(u, p, tmp);
u = tmp;
}
std::cout << std::fixed << std::setprecision(2) << bg::area(u) << "\n";
}
cám ơn bạn nhiều. Để mình coi thử. mà mik cần thuật toán mà dị cũng được