编程数学:三角函数基础01,直角三角函数

专栏导航

上一篇:第5章,Win32 章节 :Arc、Chord 和 Pie 教学插图

回到目录

下一篇:无

本专栏课件

关于本专栏课件的获取方法,请参考下述课节。

参考课节:MFC笔记:本专栏课件

本节前言

对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真的遇到了需要参考之前的文章的知识点,请你自行查阅。

我呢,也会提到一部分的参考课节。但是呢,你不应该依赖于我的主动提及。最好呢,你自己能够多去了解和查看本专栏目录。

从本节开始,我们来简单地复习一下三角函数的知识。

关于三角函数的详细的知识,我还是建议你,亲自去购买相关的初高中数学教材,尤其是购买相关的高中数学教材。

而在本专栏中,我也会领大家简单地回顾一下三角函数的部分知识。

之所以,我们要领着大家来复习三角函数的知识,那是因为,在 Windows 程序的绘图操作中,三角函数,我们常常会用到。

当我们将三角函数知识用于绘图代码时,刚刚接触时,可能会觉得有些难。当你熟悉了以后,也许,你会很喜欢三角函数的。

讲解三角函数知识,也是因为,我们在之前的课节中,没有去讲佩措尔德原教材的一个程序,SineWave 程序。之所以没有去讲,那是因为,我觉得,应该在讲解这个程序之前,先让大家学习简单一些的知识,进行一点铺垫。进行完了相关的铺垫以后,再去学习这个程序,我认为会更好。

三角函数知识,是我们需要去进行的铺垫之一。

除了三角函数知识,我们也需要在讲解 SineWave 程序之前,先给大家展示与讲解平面直角坐标系的绘制,讲解如何在平面直角坐标系里面描点。

在平面直角坐标系里面描点,这肯定会需要用到 Ellipse 函数。我们也需要去填充这个椭圆,以便使得椭圆函数在经过了填充以后,看起来像是一个点。为了填充这个椭圆,我们就需要用到 GDI 画刷的知识。

然后呢,我们在描点时,这个点,它是没有边框的,所以呢,我们也需要用到 NULL_PEN 这个备用画笔。

你看,为了在平面直角坐标系里面描点,我们就需要用到 GDI 画笔和画刷,这就是我在原教材的 SineWave 程序的位置,将其暂时搁置,而先去讲解其后的内容,直到讲完 GDI 画笔和画刷,并且练习了几个程序之后,才开始琢磨着来讲解 SineWave 程序的原因。

有了三角函数的知识,有了平面直角坐标系以及在里面描点的知识的储备以后,我们呢,就可以正式地去讲解 SineWave 程序了。

至于说,我为啥此后还要去讲解平面直角坐标系的知识,到时候,我们讲到相关课节的时候,我再去解释。

我们开始。

一. 本节内容

图1

如图1 所示,三角形 ABC 是一个直角三角形,其中 ∠ABC 为直角。则 ∠BAC 和 ∠ACB 均为锐角。

我们令 ∠BAC 为 ∠α 。

作好了基本的定义以后,我们来说正弦和余弦函数的定义。

(一)α 角的正弦,sinα

∠α 的正弦函数,记为 sinα 。

sinα,定义为 ∠α 的对边除以斜边,也就是图1 中的 BC ÷ AC 。公式如下。

在直角三角函数中,某一个锐角的正弦,定义为此锐角的 对边 ÷ 斜边 。

(二)α 角的余弦,cosα

∠α 的余弦函数,记为 cosα 。

cosα,定义为 ∠α 的直角临边除以斜边,也就是图1 中的 AB ÷ AC 。公式如下。

总 结

直角三角函数,还是比较简单的。

在本节,我们仅仅介绍直角三角函数中的正弦和余弦,其余的,像是正切,余切啥的,我们就不去介绍了。

在我的印象中,佩措尔德的 Windows 程序设计教材中,用到的三角函数,为正弦和余弦函数,不涉及正切和余切。

当然了,如果你想要学习好计算机编程知识,那么,微积分,线性代数,概率论,离散数学,积分变换,你都是需要学好的。相关的数学基础,如果你没学过或者是忘记了,其学习相关的数学课程。

在写作本文的时刻,我正在学习线性代数之中。

下一节,我们继续回顾三角函数知识。

专栏导航

上一篇:第5章,Win32 章节 :Arc、Chord 和 Pie 教学插图

回到目录

下一篇:无

相关推荐
LuminousCPP1 小时前
数据结构-排序(一):基础排序算法横向对比|冒泡、插入、希尔、堆与双向选择,详解二分 / Knuth 增量
c语言·数据结构·笔记·算法·排序算法
初願致夕霞1 小时前
C/C++传统程序内存分布(代码实测)
java·c语言·c++
牛油果子哥q1 小时前
C++对接LLM完整工程:异步HTTP请求、JSON解析、超时容错、重连兜底
c++·http·json
kaixin_啊啊1 小时前
PandaWiki 本地 AI 知识库实战:文档导入、智能问答与远程访问
linux·服务器·人工智能·windows·ai
会周易的程序员2 小时前
aiDgeController软PLC控制通讯协议文档
c++·物联网·网关·iot·ipc·进程间通讯
(Charon)2 小时前
【C++】网络缓冲区设计(四):epoll + Reactor中Buffer的完整读写流程
开发语言·c++
檀越剑指大厂2 小时前
OpenClaw 实测:Windows 安装、模型配置、电脑任务执行与公网访问
windows
西西弗Sisyphus2 小时前
Qt 实现一个 Windows 启动项查看器
开发语言·windows·qt
csdn_aspnet3 小时前
C++ 未排序数组中第 k 个最小/最大元素 | 最坏情况下的线性时间
数据结构·c++·算法