隐式 参数

曲线和曲面的表示方程有参数表示和非参数表示之分,非参数表示又分为显式表示和隐式表示(错误)。

    曲线和曲面的表示方程有隐式表示和参数表示之分,参数表示有特殊的显式表示,高度场(单值函数)。

 隐式和参数表示(显示是特殊的参数表示,参数表示可以确定一个切线空间,隐式表示还必须要找到一个参数表示,因为隐式表示的参数表示是无限的(切线空间不确定),隐式表示的好处是求法线很简单,参数表示可以先求切线,再求法线, 隐式和参数表示是不同的,信息量不一样,隐式把切线去掉了,参数表示确定了切线空间,是特殊的隐式表示,而显示又是特殊的参数表示)

    对于一个平面曲线,显式表示一般形式是:y=f(x)。在此方程中,一个x值与一个y值对应,所以显式方程不能表示封闭或多值曲线,例如,不能用显式方程表示一个圆。

    如果一个平面曲线方程,表示成f(x,y)=0的形式,我们称之为隐式表示。隐式表示的优点是易于判断函数f(x,y)是否大于、小于或等于零,也就易于判断点是落在所表示曲线上或在曲线的哪一侧。

    在几何造型系统中,曲线曲面方程通常表示成参数的形式,即曲线上任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点P可表示为:

P(t)=[x(t), y(t)];

    空间曲线上任一三维点P可表示为:

P(t)=[x(t), y(t), z(t)];

    最简单的参数曲线是直线段,端点为P1P2的直线段参数方程可表示为:

P(t)=P1+(P2-P1)t t∈[0, 1];

    圆在计算机图形学中应用十分广泛,其在第一象限内的单位圆弧的非参数

其参数形式可表示为:

    在曲线、曲面的表示上,参数方程比隐式方程有更多的优越性,主要表现在:

由于坐标点各分量的表示是分离的,从而便于变量编程。

规格化的参数变量t∈[0,1],使得界定曲线、曲面的范围十分简单。



### C++ 参数的用法与示例 在 C++ 中,参数主要体现在类成员函数的调用中。当一个类的成员函数被调用时,编译器会自动将当前对象的地址作为参数传递给该函数[^1]。这个参数通常被称为 `this` 指针,它是一个指向当前对象的指针。 以下是一个详细的示例,展示如何使用参数 `this`: ```cpp #include <iostream> using namespace std; class A { public: void func(int i, int j, int k) { x = i; // 等价于 this->x = i; y = j; // 等价于 this->y = j; z = k; // 等价于 this->z = k; } void print() const { cout << "x: " << x << ", y: " << y << ", z: " << z << endl; } private: int x; int y; int z; }; void foo(A a) { a.func(10, 100, 1000); // 调用 func 时,a 的地址作为参数传递给 func } int main() { A a; foo(a); a.print(); // 输出结果为默认值,因为传入 foo 的是 a 的副本 return 0; } ``` 在这个例子中,`func` 函数被定义为类 `A` 的成员函数。当调用 `a.func(10, 100, 1000)` 时,编译器实际上会将其转换为 `a.func(&a, 10, 100, 1000)`,其中 `&a` 是传递的 `this` 参数[^1]。 此外,C++ 还支持其他形转换,例如在表达中将较小类型的值提升为较大类型[^2]。例如: ```cpp #include <iostream> using namespace std; int main() { char c = 'A'; // 'A' 的 ASCII 值为 65 int i = c + 1; // char 类型 c 被转换为 int 类型 cout << "i = " << i << endl; // 输出: i = 66 return 0; } ``` 在这个例子中,`char` 类型的变量 `c` 在表达 `c + 1` 中被转换为 `int` 类型[^2]。 需要注意的是,转换可能会带来一些风险,例如意外的类型转换或性能问题。为了避免这些问题,可以使用 `explicit` 关键字来禁止某些转换[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值