24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 2347  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

守门老人

铁虫 (初入文坛)

[求助] 哪位大牛能给个用C++语言编写的B样条函数的代码

如题   VC新手  不懂怎么弄 请教各位大虾  谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

来自天狼

木虫 (正式写手)

【答案】应助回帖


dubo(金币+1): 欢迎常来程序语言版讨论 2011-06-29 21:40:55
守门老人(金币+30): 很有用 谢谢了 2011-07-02 10:39:55
先上个TC2.0下的代码,从书上抄来的,效果是用B样条画个小鸭子,你可以自己改成VC代码。
#include "graphics.h"
void main()
{
    int driver=9, mode=2;
    /*int x[20], y[20];*/
    float t;
    int a0, a1, a2, a3, b0, b1, b2, b3, x1, y1, i, j;
    /*控制点坐标,20个(前4行),最后几个点与前几个点重合,是为了使画出的图形闭合*/
    static int p[][2] =
    {
        260, 100, 260, 20, 200, 20, 180, 60, 180, 60,
                80,  60,  80, 90,  195, 80, 200, 140, 120, 200,
                120, 340, 240, 360, 430, 360, 480, 180, 520, 140,
                520, 140, 520, 140, 340, 160, 300, 200, 240, 160,
                260, 100, 260, 20, 200, 20
    };

    initgraph(&driver, &mode, "";
    setlinestyle(0, 0, 3);

    /*逐个处理控制点*/
    for(i = 0; i < 20; i++)
    {
        a0 = ( p[0] + 4 * p[i+1][0] + p[i+2][0] ) / 6;
        a1 = ( p[i+2][0] - p[0] ) /2;
        a2 = ( p[0] - 2 * p[i+1][0] + p[i+2][0] ) / 2;
        a3 =-( p[0] - 3 * p[i+1][0] + 3 * p[i+2][0] - p[i+3][0] ) / 6;
        b0 = ( p[1] + 4 * p[i+1][1] + p[i+2][1] ) / 6;
        b1 = ( p[i+2][1] - p[1] ) / 2;
        b2 = ( p[1] - 2 * p[i+1][1] + p[i+2][1] ) / 2;
        b3 =-( p[1] - 3 * p[i+1][1] + 3 * p[i+2][1] - p[i+3][1] ) / 6;

        /*生成离散点*/
        for(j = 0; j < 30; j++)
        {
            t = j / 30.0;
            x1 = a0 + a1 * t + a2 * t * t + a3 * t * t * t;
            y1 = b0 + b1 * t + b2 * t * t + b3 * t * t * t;
            if(i==0 && j==0)
                moveto(x1, y1);
            else
                lineto(x1, y1);
        }
    }
    circle(220, 60, 8);
    /*setcolor(12);*/
    setlinestyle(1, 0, 1);
    moveto(p[0][0], p[0][1]);

    /*画包线*/
    for(i = 1; i < 23; i++)
    {
        lineto(p[0], p[1]);
    }
    /*lineto(p[0][0], p[0][1]);*/
    getch();
    closegraph();
}
3楼2011-06-29 19:45:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


dubo(金币+1): 欢迎常来程序语言版讨论 2011-06-29 21:40:47
hoho,我正在搞nurbs目前,不过代码不能给啊.给你推荐本书
北航,施法中<计算机辅助几何设计与非均匀有理B样条>
相信你们图书馆肯定有这本书,详细讲解了NURBS和bezier曲线曲面
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2011-06-29 15:02:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-06-29 21:41:01
都是人才呀~~~真是后悔没学好数学,当白条了。哎~
漩涡的中心有一块空地,空空的。
4楼2011-06-29 19:49:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

来自天狼

木虫 (正式写手)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-06-29 21:41:08
怎么小木虫把代码里的中括号里的“i”给吃掉了?凡是单个的p[0]和p[1],p后面应该有个“中括号i”,比如“p[0]”应该是“p[0]”。
5楼2011-06-29 20:48:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 085600,专业课化工原理,320分求调剂 +4 大馋小子 2026-03-29 4/200 2026-03-29 23:12 by Evan_Liu
[考研] 085601材料工程找调剂 +14 oatmealR 2026-03-29 15/750 2026-03-29 21:48 by plmuchong
[考研] 329求调剂 +10 钮恩雪 2026-03-25 10/500 2026-03-29 13:32 by peike
[考研] 085600,专业课化工原理,321分求调剂 +5 大馋小子 2026-03-28 5/250 2026-03-29 08:56 by qingfeng258
[硕博家园] 招收生物学/细胞生物学调剂 +4 IceGuo 2026-03-26 5/250 2026-03-29 01:25 by griffith2014
[考研] 316求调剂 +7 江辞666 2026-03-26 7/350 2026-03-28 21:28 by sanrepian
[考研] 085602 化工专硕 338分 求调剂 +12 路痴小琪 2026-03-27 12/600 2026-03-28 15:41 by L135790
[考研] 339求调剂,想调回江苏 +6 烤麦芽 2026-03-27 8/400 2026-03-28 10:40 by 烤麦芽
[考研] 311求调剂 +3 希望上岸阿小杨 2026-03-23 3/150 2026-03-28 07:57 by 热情沙漠
[考研] 330一志愿中国海洋大学 化学工程 085602 有读博意愿 求调剂 +3 wywy.. 2026-03-27 4/200 2026-03-28 03:32 by fmesaito
[考研] 0703化学求调剂,各位老师看看我!!! +5 祁祺祺 2026-03-25 5/250 2026-03-27 21:44 by 东方猪猪
[考研] 一志愿 西北大学 总分282 英语一62 求调剂 +7 18419759900 2026-03-25 8/400 2026-03-27 16:38 by 18419759900
[考研] 考研化学308分求调剂 +10 你好明天你好 2026-03-23 12/600 2026-03-27 14:43 by shangxh
[考研] 298调剂 +3 jiyingjie123 2026-03-27 3/150 2026-03-27 11:57 by wxiongid
[考研] 324求调剂 +8 hanamiko 2026-03-26 10/500 2026-03-27 08:06 by hypershenger
[考研] 中国科学院深圳先进技术研究院-光纤传感课题组招生-中国科学院大学、深圳理工大学联培 +5 YangTyu1 2026-03-26 5/250 2026-03-26 18:27 by 猫咪猫咪呀
[考研] 085602 289分求调剂 +8 WWW西西弗斯 2026-03-24 8/400 2026-03-26 16:33 by 不吃魚的貓
[考研] 303求调剂 +6 蓝山月 2026-03-25 6/300 2026-03-25 22:47 by 418490947
[考研] 网络空间安全0839招调剂 +4 w320357296 2026-03-25 6/300 2026-03-25 17:59 by 255671
[论文投稿] 急发核心期刊论文 +3 贤达问津 2026-03-23 5/250 2026-03-23 17:13 by 妹子不好惹
信息提示
请填处理意见