DDMathParser(iOS5):如何设置弧度与度?

DDMathParser(iOS5):如何设置弧度与度?,ios,Ios,DDMathParser:我如何让解析器知道函数(即sin函数)的输入是度还是弧度?如果“模式”是度,我想执行:sin(n*2*pi/360),或者如果“模式”是弧度,则只执行sin(n) 我无法让_DDFunctionUtilities中的class方法识别任何其他地方定义的属性。库可能使用C的math.h sin()函数,该函数总是以弧度表示。请参阅(如果您感兴趣)的第7.12.4.6节(大PDF) 为了让你的应用程序同时提供这两个选项,你可以通过多种方式实现这一点。最佳方式取决于您的应用程

DDMathParser:我如何让解析器知道函数(即sin函数)的输入是度还是弧度?如果“模式”是度,我想执行:sin(n*2*pi/360),或者如果“模式”是弧度,则只执行sin(n)


我无法让_DDFunctionUtilities中的class方法识别任何其他地方定义的属性。

库可能使用C的math.h sin()函数,该函数总是以弧度表示。请参阅(如果您感兴趣)的第7.12.4.6节(大PDF)


为了让你的应用程序同时提供这两个选项,你可以通过多种方式实现这一点。最佳方式取决于您的应用程序。如果我正在制作一个带模式的计算器,我可能会有一个计算器实例(模型),它具有sin/rad模式的@property,那么我的视图将有一个按钮连接到viewController方法
-(iAction)TogleAngleMeasurementUnit:(UIButton)sender
,该方法调用calc对象上的相应方法(它还负责委派大多数其他按钮。然后在计算器类中,使用这些值的任何代码都会首先检查模式并进行适当的转换(或者,更令人信服的是,模式只影响访问器方法,并且值以规范的方式存储(即始终为弧度),这将允许我做30度+π弧度=?

库很可能使用C的math.h sin()函数,它总是以弧度表示。请参阅(如果您感兴趣)的第7.12.4.6节(大PDF)


要让你的应用程序同时提供这两个选项,你可以通过多种方式实现。最好的方式取决于你的应用程序。如果我使用模式制作计算器,我可能会有一个计算器实例(模型),该实例(模型)具有sin/rad模式的@属性,然后我的视图会有一个连接到viewController方法的按钮
-(iAction)TogleAngleMeasurementUnit:(UIButton)sender
,它调用calc对象上的相应方法(它还负责委派大多数其他按钮按下。然后在计算器类中,使用这些值的任何代码都会首先检查模式并进行适当的转换(或者,可能更令人信服的是,模式只影响访问器方法,并且值以规范的方式存储(即始终为弧度),这将允许我做30度+π弧度=?

你是在尝试设置模式,还是在阅读模式?你能链接到你正在使用的库的文档,并显示相关的API和你的代码吗?我在github页面上看不到任何关于模式的内容…也许只是其中一个?关于你的最后一句话:t
\u DDFunctionUtilities
中的方法返回块,这些块将
DDMathEvaluator
作为参数之一。这就是您要查找“在[其他地方]定义的属性”的地方。对于所有感兴趣的人:DDMathParser现在允许您将
angleMeasurementMode
从弧度更改为度。您是在尝试设置模式,还是阅读模式?您可以链接到正在使用的库的文档,并显示相关的API和代码吗?我在github页面上看不到任何关于模式的内容……也许吧这只是一个或另一个?关于你的最后一句话:
\DDFunctionUtilities
中的方法返回块,这些块将
DDMathEvaluator
作为参数之一。这就是你要寻找“在别处定义的属性”的地方。对于所有感兴趣的人:DDMathParser现在允许您将
angleMeasurementMode
从弧度更改为度。+1(这里是DDMathParser作者)这是正确的。三角函数的参数都需要或返回弧度,视情况而定。您可以使用
rtod
函数将事物转换为度(和它的倒数
dtor
)。此外,学位符号(
°
)的作用与
dtor
相同。这可能是真的,但就像在绘图/科学计算器中一样,我的用户可能希望输入一个以度为单位的数字,并以度为单位得到答案(许多工程分析、射频等都是以度为单位完成的)…如果有人想输入1+3*sin(30)而不使用度符号…我想实现一种模式(度或弧度),以便根据程序所处的模式,运行sin(n)或sin(2*pi/360*n)正在运行…一个简单的if语句。我在回答中提到了一些想法。这种状态管理几乎是任何应用程序不可或缺的一部分。@greydient有趣的想法。可以通过破解DDMathParser来实现这一点,但这将是一个小小的改变。我将研究添加“角度测量模式”在某个地方设置。@greydient我已经更新了DDMathParser,允许您在弧度和度数模式之间切换。+1(这里是DDMathParser的作者)这是正确的。三角函数的参数都需要或返回弧度值(视情况而定)。您可以使用
rtod
函数将值转换为度数(和它的倒数
dtor
)。此外,学位符号(
°
)的作用与
dtor
相同。这可能是真的,但就像在绘图/科学计算器中一样,我的用户可能希望输入一个以度为单位的数字,并以度为单位得到答案(许多工程分析、射频等都是以度为单位完成的)…如果有人想输入1+3*sin(30)而不使用度符号…我想实现一种模式(度或弧度),以便根据程序所处的模式,运行sin(n)或sin(2*pi/360*n)正在运行…一个简单的if语句。我在回答中提到了一些想法。这种状态管理几乎是任何应用程序不可或缺的一部分。@greydient有趣的想法。可以通过破解DDMathParser来实现这一点,但这将是一个小小的改变。我将研究添加“角度测量模式”设置在那里的某个地方。@greydient我已经更新了DDMathParser,允许您