| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2543 人关注过本帖, 2 人收藏
标题:数学渣渣,不晓得怎么处理很多个点,以知坐标求面积,看到题目就晕了,
只看楼主 加入收藏
亢奋青年
Rank: 2
来 自:遵义市
等 级:论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
收藏
得分:0 
诶,没钱啊

my time,my chips.
2013-11-18 22:59
亢奋青年
Rank: 2
来 自:遵义市
等 级:论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
收藏
得分:0 
回复 5楼 beyondyf
版主,新手没钱啊

my time,my chips.
2013-11-18 23:00
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
我这不替你垫付了么。不是我卖关子,是这个问题很值得大家掌握。希望大家通过自己的思考或查阅资料解决这个问题。

这问题实在算不上难,有点微积分的基础知识就足矣。实现的代码用不了十行。

这样吧,从现在开始,48小时内第一个实现了多边形面积计算的算法的人,我个人奖励他100专家分。

超过时限没人回答的话我会给你解答。

重剑无锋,大巧不工
2013-11-19 12:26
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:0 
多边形面积有公式的,貌似照着公式凑就可以了。

好好学习,天天想上
2013-11-19 13:28
aa547902185
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-11-19
收藏
得分:0 
她妈的 我数学不好
2013-11-19 15:51
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
这问题没高手愿意答啊,
那小弟献丑了:
程序代码:
/* 公式: S = 0.5*abs(x1*y2-x2*y1+x2*y3-x3*y2+ ... +xn*y1 - x1*yn)

 * 思路: 1. 建两个数组, x y 我用malloc()分配内存

 *          因为公式最后要乘上第一个点,我就把第一个

 *          点复制到最后,这样容易实现

 *       2. 顺序输入各个点.

 *       3, 按公式计算....

 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int *x, *y, sum;       
    int p;                  // 点的个数
    double area;            // 面积
    int i;

    sum = 0;
    area = 0;

   // 输入点个数,分配内存
    printf("请输入点的个数: ");
    scanf("%d", &p);
    x = (int *)malloc((p+1) * sizeof *x);     // 内存多1, 用来把第一个点复制到最后
    y = (int *)malloc((p+1) * sizeof *y);
    if (x == NULL || y == NULL) {
        printf("內存分配失败\n");
        exit(0);
    }

    printf("请按顺序输入各个点:\n");
    for (i = 0; i < p; ++i)
        scanf("%d%d", &x[i], &y[i]);

    x[i] = x[0];                    // 复制第一个点
    y[i] = y[0];

    // 按公式计算
    for (i = 0; i < p; i++)                  
        sum += (x[i] * y[i+1] - x[i+1] * y[i]);
  
    area = 0.5 * abs(sum);           // 如果点是逆时针的会有负值,所以取绝对值 

    printf("这个%d边形的面积为: %.2f\n", p, area);
    free(x);
    free(y);
    return 0;
}
这个算法要求点按顺序输入 ,坐等版主的代码学习.


[ 本帖最后由 pangshch 于 2013-11-20 09:07 编辑 ]
2013-11-20 09:05
pink_duo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:209
专家分:1054
注 册:2013-11-5
收藏
得分:0 
你看吧,重赏之下必有智者,楼上

埋头做牛,抬头做人,低头做狗
2013-11-20 11:29
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
回复 17楼 pink_duo
公式是百度的,
有了公式, 简单实现其实不难,对不对?
我是看高手都觉得没意思不想做,
然后我又看版主说这东西有用,
刚好我不知道, 就试了试.
还在等版主的代码学习..
2013-11-20 11:44
冬冬123
Rank: 2
等 级:论坛游民
帖 子:80
专家分:67
注 册:2013-3-3
收藏
得分:0 
是将多边形转换为三角形求面积,可是我试着转换开之后又发现不对,不知道是不是自己算错了,唉,数学差是硬伤!!!

天下寒士俱欢言!!!
2013-11-20 13:26
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 18楼 pangshch
嗯,式子没有问题。如果你能解释一下这个式子的推导过程这100分就是你的了。

如果别人先解释了这个式子,那你俩一人50分。如果没人解释,这100分全是你的。

只不过我还准备了两个进阶的问题,我将根据这一题大家的解答情况决定要不要再悬赏那两个问题。

赏金额度我都想好了,下一问200分,再下一问1000分。

重剑无锋,大巧不工
2013-11-20 15:51
快速回复:数学渣渣,不晓得怎么处理很多个点,以知坐标求面积,看到题目就晕了, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013660 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved