unsigned char is_inside (struct point pt, struct triangle *tri) { int ar1, ar2, ar3, total; struct triangle temp; total = tri_area (tri); if (total < 0) total *= -1; temp.pt1 = pt; temp.pt2 = tri->pt2; temp.pt3 = tri->pt3; ar1 = tri_area (&temp); if (ar1 < 0) ar1 *= -1; temp.pt1 = tri->pt1; temp.pt2 = pt; temp.pt3 = tri->pt3; ar2 = tri_area (&temp); if (ar2 < 0) ar2 *= -1; temp.pt1 = tri->pt1; temp.pt2 = tri->pt2; temp.pt3 = pt; ar3 = tri_area (&temp); if (ar3 < 0) ar3 *= -1; return ((ar1 + ar2 + ar3) <= total); }
double trap_area(double short_side, double long_side, double height) { //caculate the area of a trapezoid //you can store the result of a function in a variable //to do so just assign a variable to a function that returns something double r_area = rect_area(short_side, height); //the area of the center square double tri_base = (long_side - short_side) / 2.0; double tri_areas = tri_area(tri_base, height) * 2;//the area of the triable parts double t_area = r_area + tri_areas; return t_area; }
int main(int argc, char *argv[]) { if (argc != 3) { printf("Usage: %s <g> <h>\n", argv[0]); return 1; } double g = strtod(argv[1], NULL); double h = strtod(argv[2], NULL); printf("area is %f\n", tri_area(g, h)); return 0; }
void do_tri() { double base, height, area; printf("Please enter the base of the triangle: "); scanf("%lf", &base); printf("Please enter the height of the triangle: "); scanf("%lf", &height); area = tri_area(base, height); printf("The area of a triangle with base %.2lf and height %.2lf is %.2lf\n", base, height, area); }//do_tri
int main() { char fig[11][2]; double crd[11][6]; int i, j, k; double x, y, d; bool is_contained; for(i = 1; scanf("%s", &fig[i][0]), fig[i][0] != '*'; i++) { if(fig[i][0]=='r') scanf("%lf%lf%lf%lf", &crd[i][0], &crd[i][1], &crd[i][2], &crd[i][3]); else if(fig[i][0]=='c') scanf("%lf%lf%lf", &crd[i][0], &crd[i][1], &crd[i][2]); else if(fig[i][0]=='t') scanf("%lf%lf%lf%lf%lf%lf", &crd[i][0], &crd[i][1], &crd[i][2], &crd[i][3], &crd[i][4], &crd[i][5]); } for(j = 1; scanf("%lf%lf", &x, &y) == 2; j++) { if(x==9999.9 && y==9999.9) break; is_contained = false; for(k = 1; k < i; k++) { if(fig[k][0] == 'r') { if(x > crd[k][0] && x < crd[k][2] && y < crd[k][1] && y > crd[k][3] ) { printf("Point %d is contained in figure %d\n", j, k); is_contained = true; } } else if(fig[k][0] == 'c') { d = sqrt(pow((x - crd[k][0]), 2.0) + pow((y - crd[k][1]), 2.0)); if(d < crd[k][2]) { printf("Point %d is contained in figure %d\n", j, k); is_contained = true; } } else if(fig[k][0] == 't') { double t, t1, t2, t3; t1 = tri_area(crd[k][0], crd[k][1], crd[k][2], crd[k][3], x, y); t2 = tri_area(crd[k][2], crd[k][3], crd[k][4], crd[k][5], x, y); t3 = tri_area(crd[k][0], crd[k][1], crd[k][4], crd[k][5], x, y); t = tri_area(crd[k][0], crd[k][1], crd[k][2], crd[k][3], crd[k][4], crd[k][5]); if(t1 != 0 && t2 != 0 && t3 != 0 && (fabs((t1 + t2 + t3) - t) < 1e-6)) { printf("Point %d is contained in figure %d\n", j, k); is_contained = true; } } } if(is_contained == false) printf("Point %d is not contained in any figure\n", j); } return 0; }