重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
AutoCAD作为一个专业绘图软件在机械、电子、建筑及航空等领域得到了广泛的应用,但是大多数AutoCAD的使用者只知道AutoCAD具有强大的绘图功能,却很少有人注意到AutoCAD中的一个非常有用的命令:几何计算器cal。和普通的计算器一样,cal几何计算器可以完成加、减、乘、除运算以及三角函数的运算。这使得用户在使用AutoCAD绘图过程中,可以在不中断命令的情况下用计算机进行算术运算,AutoCAD则将运算的结果直接作为命令的参数使用。
成都创新互联服务项目包括阿克陶网站建设、阿克陶网站制作、阿克陶网页制作以及阿克陶网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,阿克陶网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到阿克陶省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
但重要的是,与一般的计算器不同,AutoCAD几何计算器可以作几何运算。它可以作坐标点和坐标点之间的加减运算,可以使用AutoCAD的OSNAP模式捕捉屏幕上的坐标点参与运算,还可以自动计算几何坐标点。如计算两条相交直线的交点,计算直线上的等分点等。此外,AutoCAD几何计算器还具有计算矢量和法线的功能。
一、Cal函数的计算功能运用
在AutoCAD中,cal命令类似于一个普通的计算器,可以用来计算与加、减、乘、除等有关的标准数学表达式,并遵从运算表达式的标准数学运算次序。而且,cal命令还是一个透明名令,可以用来提供一个点或一个数。当我们透明执行该命令时,其计算结果被解释为AutoCAD命令的一个输入值。下面是透明执行计算器功能的一个实例。
以(200,200)为圆心绘制半径为[(425-260)*(1/3)+sin(45)]的圆。
(1)在命令行输入:C,并按ENTER键;
(2)命令行提示: “指定圆的圆心或[三点(3P)/两点(2P)/相切、相切、半径(T)]:”,输入(100,100)并按ENTER键;
(3)命令行提示:“指定圆的半径或直径:”,此时输入:“cal”,并按ENTER键,然后输入表达式:(425-260)*(1/3)+sin(45)并按ENTER键;
(4)命令行显示:41.9571。即AutoCAD以表达式的值41.9571为圆的半径绘制了一个圆。
二、Cal函数在找点中的运用
在使用AutoCAD绘图中,常常需要确定一些无法直接给出坐标的点。例如,任意两点间的中点,和任意方向直线相切的圆的圆心,以及直线上任意等分点等。这里可以充分利用AutoCAD的cal函数的几何运算功能,在AutoCAD绘图中实现这些点的快速定位。
下面是利用AutoCAD的cal函数的几何运算功能实现在AutoCAD绘图中经常遇到的一个快速定位的实例。
例如,要从一个圆心距一直线的端点之间的2/3处为起点画一直线。操作过程如下:
Command: line From point: 'cal (起动几何计算器)
Expression: plt(cen,end,2/3)(输入表达式,这里计算器把OSNAP的cen和end模式当作点坐标的临时存储单元)
Select entity for CEN sanp:(用光标捕捉圆心)
Select entity for END snap:(用光标捕捉直线的端点)
To point:
其他的目标捕捉模式,如int、ins及tan等均可在几何计算表达式中使用。
按照题目要求编写的Python程序如下
def calBMI(height,weight):
BMI=weight/(height*height)
if BMI18.5:
return [BMI,"过轻"]
elif BMI24:
return [BMI,"正常"]
elif BMI28:
return [BMI,"过重"]
else:
return [BMI,"肥胖"]
import re
s=input("请输入你的身高(米)和体重(公斤)【逗号隔开】:")
s1=re.split(r'[,,]',s)
height=float(s1[0])
weight=float(s1[1])
name="李子健"
bmi=calBMI(height,weight)
print("{}的测算结果为:".format(name))
print("BMI:%.2f"%bmi[0])
print(bmi[1])
源代码(注意源代码的缩进)
首先, 你的程序有一个小错误,开头声明应该为void cal(const char *p,int num);
我试了一下,这个程序是没有固定的结果的。
cal函数传递一个常量指针和一个整型应用,在cal中首先给整数赋值为0,然后开始循环,当*p为零时结束循环,这里循环的时机就是在系统为str分配内存空间决定的,因为你没有给str赋值,所以程序会按照内存中原来存储的未知的数执行,当遇到0时就停止循环。
补充:str因为没有被赋初值,所以他里面的内容是随机的了,如果你以它里面的内容作为循环的条件,那么当遇到p所指的内容为0的时候才会结束循环。再不采纳我也没招了。