规则体--球体 各切面坐标

void Round()
{
    double x, y, z, r;
    double xx[1000], yy[1000], zz[1000], xx1[1000], yy1[1000], zz1[1000];
    int t;
    int n;
    printf("输入原点坐标位置:\t");
    scanf("%lf%lf%lf", &x, &y, &z);
    printf("\n输入圆的半径:");
    scanf("%lf", &r);
    printf("\n输入需要多少层面:");
    scanf("%d", &t);
    printf("\n每层需要采集多少个点:");
    scanf("%d", &n);

    double num;
    num = 360 / n;
    printf("\n每层采集%d个点,两点之间角度为%.2f\n", n, num);
   // printf("个点,角度为%.2f\n", num);

    double num1;
    num1 = 2 * r / t*1.0;
    printf("切%d层,每层厚度为:%.2f\n", t, num1);
       
    double num2; 
    double r1,r2;
    int k = 0;
    for (int j = 0; j <= t; j++)
    {
        num2 = (z-r) + num1*j;  //对于z的坐标计算

        //对于每个切面圆半径的计算
        r1 = pow(r, 2) - pow((r - num1 * j), 2);
        r2 = sqrt(r1);
        printf("\n当前第%d层,切面半径为%.2f,坐标点为:\n", j, r2);
        for (int i = 0; i < n; i++)
        {
            printf("当前角度:%.2f\n", num * i);
            xx1[i] = r2 * cos(num*i*PI / 180.0) + x;
            yy1[i] = r2 * sin(num*i*PI / 180.0) + y;
            zz1[i] = num2;
            xx[k] = xx1[i];
            yy[k] = yy1[i];
            zz[k] = zz1[i];
            printf("xx[%d]:%.2f\t", i, xx[k]);
            printf("yy[%d]:%.2f\t", i, yy[k]);
            printf("zz[%d]:%.2f\n", i, zz[k]);
            k++;

        }
        
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值