• QQ21031394

    工作时间

    周一至周五:9:30-18:30

    周末及节日:根据情况调休

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
雨散云飞 二级会员
  • 浙江省丽水市
  • 183发帖数
  • 11主题数
  • 3关注数
  • 10粉丝

[演示和教程] 【转自U9算法帝】算法教程

[复制链接]
雨散云飞 发表于 2020-10-20 10:18:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
提莫作坊QQ群:提莫作坊www.tbwlm.cn

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 雨散云飞 于 2020-10-20 10:28 编辑

    此贴献给爱数学,爱物理,爱自己(自恋)的小朋友们,祝你们早升算法

PROE线


计算公式
1.碟形弹簧 圓柱坐标 方程:r = 5 theta = t*3600 z =(sin(3.5*theta-90))+24*t
2.葉形线. 笛卡儿坐標标 方程:a=10 x=3*a*t/(1+(t^3)) y=3*a*(t^2)/(1+(t^3))
3.螺旋线(Helical curve) 圆柱坐标(cylindrical) 方程: r=t theta=10+t*(20*360) z=t*3
4.蝴蝶曲线 球坐标 方程:rho = 8 * t theta = 360 * t * 4 phi = -360 * t * 8
5.渐开线 采用笛卡尔坐标系 方程:r=1 ang=360*t s=2*pi*r*t x0=s*cos(ang) y0=s*sin(ang) x=x0+s*sin(ang) y=y0-s*cos(ang) z=0
6.螺旋线. 笛卡儿坐标 方程:x = 4 * cos ( t *(5*360)) y = 4 * sin ( t *(5*360)) z = 10*t
7.对数曲线 笛卡尔坐标系 方程:z=0 x = 10*t y = log(10*t+0.0001)
8.球面螺旋线 采用球坐标系 方程:rho=4 theta=t*180 phi=t*360*20
9.双弧外摆线卡迪尔坐标方程: l=2.5 b=2.5 x=3*b*cos(t*360)+l*cos(3*t*360) Y=3*b*sin(t*360)+l*sin(3*t*360)
10.星行线 卡迪尔坐标 方程:a=5 x=a*(cos(t*360))^3 y=a*(sin(t*360))^3
11.心脏线 圓柱坐标 方程:a=10 r=a*(1+cos(theta)) theta=t*360
12.圆内螺旋线 采用柱座标系 方程:theta=t*360 r=10+10*sin(6*theta) z=2*sin(6*theta)
13.正弦曲线 笛卡尔坐标系 方程:x=50*t y=10*sin(t*360) z=0
15.费马曲线(有点像螺纹线) 圓柱坐标 方程1: theta=360*t*5 a=4 r=a*sqrt(theta*180/pi) 方程2: theta=360*t*5 a=4 r=-a*sqrt(theta*180/pi)
16.Talbot 曲线 卡笛尔坐标 方程:theta=t*360 a=1.1 b=0.666 c=sin(theta) f=1 x =(a*a+f*f*c*c)*cos(theta)/a y = (a*a-2*f+f*f*c*c)*sin(theta)/b
18.Rhodonea 曲线 采用笛卡尔坐标系 方程:theta=t*360*4 x=25+(10-6)*cos(theta)+10*cos((10/6-1)*theta) y=25+(10-6)*sin(theta)-6*sin((10/6-1)*theta)
19. 抛物线 笛卡儿坐标 方程:x =(4 * t) y =(3 * t) +(5 * t ^2) z =0
20.螺旋线 圓柱坐标 方程:r = 5 theta = t*1800 z =(cos(theta-90))+24*t
21.三叶线 圆柱坐标 方程:a=1 theta=t*380 b=sin(theta) r=a*cos(theta)*(4*b*b-1)
22.外摆线 迪卡尔坐标 方程:theta=t*720*5 b=8 a=5 x=(a+b)*cos(theta)-b*cos((a/b+1)*theta) y=(a+b)*sin(theta)-b*sin((a/b+1)*theta) z=0
23. Lissajous 曲线theta=t*360a=1b=1c=100n=3x=a*sin(n*theta+c)y=b*sin(theta)
24.长短幅圆内旋轮线 卡笛尔坐标 方程:a=5 b=7 c=2.2 theta=360*t*10 x=(a-b)*cos(theta)+c*cos((a/b-1)*theta) y=(a-b)*sin(theta)-c*sin((a/b-1)*theta)
25.长短幅圆外旋轮线 卡笛尔坐标 方程:theta=t*360*10 a=5 b=3 c=5 x=(a+b)*cos(theta)-c*cos((a/b+1)*theta) y=(a+b)*sin(theta)-c*sin((a/b+1)*theta)
26. 三尖瓣线a=10x =a*(2*cos(t*360)+cos(2*t*360))y = a*(2*sin(t*360)-sin(2*t*360))
27.概率曲线!方程:笛卡儿坐标x = t*10-5y = exp(0-x^2)
28.箕舌线笛卡儿坐标系a = 1x = -5 + t*10y = 8*a^3/(x^2+4*a^2)
29.阿基米德螺线柱坐标a=100theta = t*400r = a*theta
30.对数螺线柱坐标theta = t*360*2.2a = 0.005r = exp(a*theta)
31.蔓叶线笛卡儿坐标系a=10y=t*100-50solve x^3 = y^2*(2*a-x)for x
32.tan曲线笛卡儿坐标系x = t*8.5 -4.25y = tan(x*20
33.双曲余弦x = 6*t-3y = (exp(x)+exp(0-x))/2
34.双曲正弦x = 6*t-3y = (exp(x)-exp(0-x))/2
35.双曲正切x = 6*t-3y = (exp(x)-exp(0-x))/(exp(x)+exp(0-x))
36.一峰三驻点曲线x = 3*t-1.5y=(x^2-1)^3+1
37.八字曲线 x = 2 * cos ( t *(2*180)) y = 2 * sin ( t*(5*360)) z = 0
38.螺旋曲线 r=t*(10*180)+1 theta=10+t*(20*180) z=t
39.圆 x = cos ( t *(5*180)) y = sin ( t *(5*180)) z = 0
40.封闭球形环绕曲线 rho=2 theta=360*t phi=t*360*10
41.柱坐标螺旋曲线 x = 100*t * cos ( t*(5*180)) y = 100*t * sin ( t*(5*180)) z = 0
42.蛇形曲线 x = 2 * cos ( (t+1)*(2*180)) y = 2 * sin ( t*(5*360)) z = t*(t+1)
43.8字形曲线柱坐标theta = t*360r=10+(8*sin(theta))^2
44.椭圆曲线笛卡尔坐标系a = 10b = 20theta = t*360x = a*cos(theta)y = b*sin(theta)
45.梅花曲线柱坐标theta = t*360r=10+(3*sin(theta*2.5))^2
46.另一个花曲线theta = t*360r=10-(3*sin(theta*3))^2z=4*sin(theta*3)^2
48.螺旋上升的椭圆线a = 10b = 20theta = t*360*3x = a*cos(theta)y = b*sin(theta)z=t*12
49.甚至这种螺旋花曲线theta = t*360*4r=10+(3*sin(theta*2.5))^2z = t*16
50 鼓形线 笛卡尔方程r=5+3.3*sin(t*180)+ttheta=t*360*10z=t*1051
51.长命锁曲线笛卡尔方程:a=1*t*359.5b=q2*t*360c=q3*t*360rr1=w1rr2=w2rr3=w3x=rr1*cos(a)+rr2*cos(b)+rr3*cos(c)y=rr1*sin(a)+rr2*sin(b)+rr3*sin(c)
52 簪形线球坐标方程:rho=200*ttheta=900*tphi=t*90*10
53.螺旋上升曲线 r=t^10 theta=t^3*360*6*3+t^3*360*3*3 z=t^3*(t+1)
54.蘑菇曲线 rho=t^3+t*(t+1) theta=t*360 phi=t^2*360*20*20
55. 8字曲线 a=1 b=1 x=3*b*cos(t*360)+a*cos(3*t*360) Y=b*sin(t*360)+a*sin(3*t*360)
56.梅花曲线 theta=t*360 r=100+50*cos(5*theta) z=2*cos(5*theta)
57.桃形曲线 rho=t^3+t*(t+1) theta=t*360 phi=t^2*360*10*10
58.名稱:碟形弹簧建立環境:pro/e圓柱坐r = 5theta = t*3600z =(sin(3.5*theta-90))+24
59.环形二次曲线笛卡儿方程:x=50*cos(t*360)y=50*sin(t*360)z=10*cos(t*360*8)
60 蝶线球坐标:rho=4*sin(t*360)+6*cos(t*360^2)theta=t*360phi=log(1+t*360)*t*360
61.正弦周弹簧笛卡尔:ang1=t*360ang2=t*360*20x=ang1*2*pi/360y=sin(ang1)*5+cos(ang2)z=sin(ang2)
62.环形螺旋线笛卡尔:x=(50+10*sin(t*360*15))*cos(t*360)y=(50+10*sin(t*360*15))*sin(t*360)z=10*cos(t*360*5)
63.内接弹簧笛卡尔:x=2*cos(t*360*10)+cos(t*180*10)y=2*sin(t*360*10)+sin(t*180*10)z=t*6
64.多变内接式弹簧笛卡尔:x=3*cos(t*360*8)-1.5*cos(t*480*8)y=3*sin(t*360*8)-1.5*sin(t*480*8)z=t*8
65.柱面正弦波线柱坐标:方程r=30theta=t*360z=5*sin(5*theta-90)
66. ufo (漩涡线)球坐标:rho=t*20^2theta=t*log(30)*60phi=t*7200
67. 手把曲线笛卡尔:thta0=t*360thta1=t*360*6r0=400r1=40r=r0+r1*cos(thta1)x=r*cos(thta0)y=r1*sin(thta1)z=0
68.篮子圆柱坐标r=5+0.3*sin(t*180)+ttheta=t*360*30z=t*5
69. 圆柱齿轮齿廓的渐开线方程:笛卡尔坐标afa=60*tx=10*cos(afa)+pi*10*afa/180*sin(afa)x=10*sin(afa)-pi*10*afa/180*cos(afa)z=0
70.对数螺旋曲线柱坐标:r=sqrt(theta)theta=t*360*30z=0
72. 向日葵线笛卡尔:theta=t*360r=30+10*sin(theta*30)z=0
74 塔形螺旋线笛卡尔:r=t*80+50theta=t*360*10z=t*80
75 花瓣线球坐标:rho=t*20theta=t*360*90phi=t*360*10
76 双元宝线笛卡尔:r=sin(t*360*10)+30theta=sin(t*360*15)z=sin(t*3)
77 阿基米德螺线的变形柱坐标下:theta=360*2*(t-0.5)r=10*thetaz=0
78 改过来的渐开线方程 r=20 ang = t*360 x=r*cos(ang)+2*pi*r*t*sin(ang) y=r*sin(ang)-2*pi*r*t*cos(ang) z=0
79 双鱼曲线球坐标系rho=30+10*sin(t*360*10)theta=t*180*cos(t*360*10)phi=t*360*30
80 蝴蝶结曲线迪卡尔坐标x=200*t*sin(t*3600)y=250*t*cos(t*3600)z=300*t*sin(t*1800)
81 ”两相望“曲线球坐标系rho=30theta=t*360*cos(t*360*20)phi=t*360*20
82 小蜜蜂笛卡尔坐标系:x=cos(t*360)+cos(3*t*360)Y=sin(t*360)+sin(5*t*360)
83 弯月x=cos(t*360)+cos(2*t*360)Y=sin(t*360)*2+sin(t*360)*2
84 热带鱼a=5x=(a*(cos(t*360*3))^4)*ty=(a*(sin(t*360*3))^4)*t
85 燕尾剪x=3*cos(t*360*4)y=3*sin(t*360*3)z=t
86 天蚕丝theta=t*3600r=(cos(360*t*20)*.5*t+1)*t
87 心电图圆柱坐标系:r=sin(t*360*2)+.2theta=10+t*(6*360)z=t*3
88 变化后的星形线迪卡尔坐标系theta=t*360x=10*cos(theta)^3y=10*sin(theta)^3z=cos(theta)
89 小白兔theta=t*360-90r=cos(360*(t/(1+t^(6.5)))*6*t)*3.5+5
90 大家好theta=t*360+180r=cos(360*t^3*6)*2+5
91 蛇形线笛卡尔坐标系:x=2*cos(t*360*3)*ty=2*sin(t*360*3)*tz=(sqrt(sqrt(sqrt(t))))^3*5
92 五环柱坐标:theta=t*360*4r=cos(t*360*5)+1
93 蜘蛛网柱坐标:theta=t*360*5r=t*sin(t*360*25)*5+8
94 次声波笛卡尔:x=t*5y=t*cos(t*360*8)
95 十字渐开线柱坐标:theta=t*360*4r=(cos(t*360*16)*0.5*t+1)*t
96 内五环笛卡尔theta=t*360*4x=2+(10-5)*cos(theta)+6*cos((10/6-1)*theta)y=2+(10-5)*sin(theta)-6*sin((10/6-1)*theta)
97 蜗轨线柱坐标;theta=t*360*2r=cos(t*360*30)*t*0.5+t*2
98花蕊theta = t*360r=5-(3*sin(theta*3))^2z=(r*sin(theta*3))^2
99肾脏线笛卡尔坐标系theta=t*360a=1.0x=a*(3*cos(theta)-cos(3*theta))y=a*(3*sin(theta)-sin(3*theta))
100肾形线柱坐标系a=2theta=t*360*180/pir=a*(1+2*sin(theta/2))z=0
101笛卡尔坐标系的圆内螺旋线a=5b=3x=(a-b)*cos(t*360*180/pi)+b*cos((a/b -1)*t*360*180/pi)y=(a-b)* sin(t*360*180/pi)-b*sin((a/b -1)*t*360*180/pi)z=0
102变了一下的鼓鼓形线r=6*sin(t*360)+ttheta=t*360*20z=t*20


以下为本人计算的t取值解析
这套曲线公式为多数高手所拥有,但是自本人观察以来,竟然众多算法高手中没人能够自如运用,相信阁下也已经看出了难度
以 t 值贯穿全文,但是 t 的取值PROE工程式中全文只字不提,并且怎么代入WE也是大伤脑筋...那么阁下能够读到这行或者偶然
看到也无所谓,总之能看出阁下对求知的渴望。
其实 t 在公式中充当的就是一个比值的作用,是个0~1之间的一个率,因此 t 必为实数
然后要用WE中的loop(循环数)来控制 t 值运算.
以下用J、T简述
J版简洁
local integer i=0
local integer max=35
local real t
loop
exitwhen i>max
set i=i+1
set t=I2R(i/max)
endloop
求取 t 值 t=i/max
T版给看不懂J的同志们
设置i(整数)=0
设置t(实数)=0
For 循环数A 1~36,做动作:
设置t=转换循环数A为实数/36
t值=循环数A/36
t值求到这相信有一定数学基础的人都看得懂了吧
有一定WE基础的人都知道接下来怎么运用了


本人对关于thetha,r,坐标算法,球坐标和一些常量的叙述

是否还是看得一头雾水?
是否打算滚动鼠标滑轮随便浏览一番然后点大红叉?
是否想骂LZSB?
是否对thetha等火星文嫉恶如仇?

那么,如果你真想成为像我一样的算法帝或者超过我,请你耐心读下去...

thetha,如果你有一点英语基础,请把它读出来
接下来,如果你有一点物理和数学基础,
你会大骂:你XX的耍我

大哥我不是想耍你啊,我之前就被这个单词耍了...
准备上百度时无意一读,一切豁然开朗....

thetha就是物理学中的坐标夹角
r是直角坐标系中任意点到原点的距离

一般形如:

X=r*cos(thetha)
Y=r*sin(thetha)

详情可调至:坐标算法←点击


a,b,c...之类的就是一般常量取值,代入即可

至于第51条长命锁中的:rr1,q,w之类的我也没看懂,原版的没赋值,而且本人高一学生,对那些深奥的东东没研究...

然后就是让我吐血的球坐标了,不好意思,我吐血了,听WOW8某位大大说那微积分之内的来做,以我现在的能力实在达不到啊...

如果阁下能算出来,那教教我吧....

相关链接:
https://wenku.baidu.com/view/eb5596c69ec3d5bbfd0a7455.html#

游客,如果您要查看本帖隐藏内容请回复





====延伸(后边学习空间任意建圆和计算角度有用)====

上述两条与圆有关的有向线段MP、OM,分别叫做角a的正玄线、余弦线

类似地,我们也可以把OA、AT看作有向线段,那么根据正切函数的定义和相似

三角形的知识,就有:

tana =y/x=MP/OM=AT/OA=AT.

这条于单位圆有关的有向线段AT,叫做角a的正切线。

当角a的终边在x轴上时,正玄线、正切线分别变成一个点;当角a的终边在y轴上时,

余弦线变成一个点,正切线不存在(上边说道正切和反正切Atan定义域相似,因此

后边的空间任意建圆计算Atan定义域与tan定义域相似,大家不要觉得有什么难的)





楼主热帖
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。
[img]https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fd.zdqx.com%2Fhyrz_161

精彩评论25

 楼主| 雨散云飞 发表于 2020-10-20 10:20:49 | 显示全部楼层
空间建任意圆---摩天轮公式(非原创)

转载自WOW8---原帖链接:摩天轮公式



是否烦透了鱼妹的平面建圆?是否想要凌驾于三维空间之上?
那么摩天轮公式将你您最好的选择.
计算方法的推导过程:
我们假设下边的平面为地面,倾斜的平面为圆所在的面,这两个面夹角是α。

其中红线是圆周,蓝色的虚线是圆在地面上的投影(实际上,这个投影一般

情况下是一个椭圆)。为了画图容易看清,我省略了下半圆和上边的部分圆

。圆心点O在地面上,点A是圆周上任意一点,那么线段AO就是圆的一条半

径r,点A'是点A在地面上的投影,那么A'O是r在地面的投影,我们称它为r'。

现在,圆心O是已知的,我们只要知道r'的长度和∠BOA'(下边称它为β')的

大小,就能用极坐标的方式来画出这个投影了,然后再求出AA'的长度(下边

称它为h),就能创建一个斜圆。下面做辅助线:从点A和点A'做两平面相交

线的垂线,很容易推导出,他们拥有共同的交点:B。那么根据两面夹角的定

义,我们知道,∠ABA' = ∠α,我们设点A对应的圆心角AOB为∠β。

AB = r * Sinβ

OB = r * Cosβ

A'B = AB * Cosα = r * Cosα * Sinβ

r' = 开平方( OB^2 + A'B^2 ) = r * 开平方( (Cosβ)^2 + (Sinβ)^2 * (Cosα)^2)

β' = arcTg(A'B / BO) = arcTg(Sinβ*Cosα / Cosβ)

h = AB * Sinα = r * Sinα * Sinβ

通过上边这些数据,只要动态改变β'的值,就能创建出一个指定倾角的圆来;设置

不同的步长,就能指定创建的特效单位的数量;如果改变β的值,则能改变圆面的

倾角;改变r的值则控制圆的大小。但是,这样创建的圆只能围绕X轴做旋转,也就

是说当圆面立起来的时候,他是面向屏幕的。那么如果我想把它按Z轴旋转某个角

度呢?实际上,只需要在β'上加上需要旋转的角度就可以了。

总结一下:

功能:在任意位置创建任意角度、任意面向、任意大小、任意高度、任意特效单位

数量的圆,必须参数:除上边提到的圆心位置、倾角、面向、半径、圆心高度、特

效数量外,还需要指定使用何种单位创建特效。

那么现在将其转换为WE的语言(用J方便点,至于不会J的同志可以看附件T版教程)

local real r=500 (建立的圆半径)

local real a=45 (倾斜角度)

local real array angle

local real dis

local real h

local integer i=0

loop

exitwhen i>35

set i=i+1

set angle[1]=360/36*I2R(i)

set dis=sqr( (r*CosBJ(angle[1])^2+(r*SinBJ(angle[1])*CosBJ( a)^2) (求取距离)

set angle[2]=Atan(CosBJ(a)*SinBJ(angle[1])/CosBJ(angle[1])) (求取方向)

set h=r*SinBJ(angle[1])*Sin(a) (求取高度)

If angle[1]>90 and angle[1]≤270(这儿因为反正切定义域问题,详情可见:坐标算法下边的延伸)

  then set angle[2]=angle[2]+180

else

endif

endloop

剩下的工作就是把求出的距离和方向代入就行了,建议使用坐标算法方便得多。

对摩天轮公式漏洞的处理与完善(原创)

(取值链接于上摩天轮公式的计算)

当我们需要建立的圆绕Z轴和X轴(Y轴也可)旋转时,聪明的读者或许早已想到

不断改变a值就行了这当然没问题,当需要在使得建立的圆绕Z轴和X轴(Y轴也可

)旋转时,同时也像平面坐标系(X.Y轴)旋转那么就会出致命的BUG,当set ang

le[1]=angle[1]+3时同时又设置a=a+1,那么根据反正切的特性,只要angle[1]取值一

旦超过360,你就会惊奇地发现建立的圆‘散架’了,那么何以解决使得圆绕3维旋

转的BUG呢?即是说,我们必须将angle[1]的值控制在360度以内,要解决这个问题

,我们应先接触一种特殊的运算---mod,(被除数mod除数=余数)详情见:(待编辑)

在设置angle[1]的取值后应在后边写上一条判断句:

If-angle[1]>360

then set angle[1]=angle[1] mod 360

else 无动作

只要加上这个判断句,建立圆3维旋转的BUG就被完美解决了。

球体算法

想不想计算出一个大皮球,然后用它来打碎你自家的玻璃?

想不想把自己的头吹成气球,然后再用针扎破?

其实用摩天轮公式也可以计算出球体,详情可见本人作品集A

中的光束瞬杀。

好了,转入正题(其实球坐标我也不怎么会,就用百度上的介绍吧)

球坐标是一种三维坐标。分别有原点、方位角、仰角、距离构成。

设P(x,y,z)为空间内一点,则点P也可用这样三个有次序的数r,

φ,θ来确定,其中r为原点O与点P间的距离,θ为有向线段与z轴正

向所夹的角,φ为从正z轴来看自x轴按逆时针方向转到有向线段的角

,这里M为点P在xOy面上的投影。这样的三个数r,φ,θ叫做点P的球

面坐标,这里r,φ,θ的变化范围为

  0 ≤ r < +∞,

  0 ≤φ≤ 2π,

  0 ≤θ≤ π.

  r = 常数,即以原点为心的球面;

  θ= 常数,即以原点为顶点、z轴为轴的圆锥面;

  φ= 常数,即过z轴的半平面。

  其中

  x=rsinθcosφ

  y=rsinθsinφ

  z=rcosθ

因此如果我们想要代入WE的话必须计算X,Y,Z轴,X,Y轴的话

只要看看坐标算法大家就会懂,Z轴其实就是组成单位的飞行

高度,但球坐标也是有限制的,主要表现为定义域限制(这个

我也不大懂,会的大叔们可以在回复中提提对球坐标的意见)

那么,现在开始写代入WE的J吧,T的话可以看演示里。

local real array angle

local real r=200(球半径)

local integer array n

local integer a=0

local integer b=0

set n[1]=2(用于调节球的定义域)

set n[2]=0

loop

exitwhen a>36

set a=a+1

if a<18 then

set n[1]=n[1]+1

else

set n[1]=n[1]-1

endif

loop

exit b>n[1]

set b=b+1

set n[2]=n[2]+1

set angle[1]=180(用于搭配循环数调整角θ和φ的取值,这个的取值范围:β=α+kπ  k>0,k∈Z(高一下的书上有,可以看看书))

set angle[2]=angle[1]/36*I2R(a) (这个就是传说中的θ角,求解意义和空间建任意圆中的单位角相同)

set angle[3]=2*angle[1]/n[1]*I2R(b) (这是φ角,利用angle[2]来推导(但我不知道为什么这样做,本M还年轻,城府太浅,会的叔叔可以在回复中给出答案)
set b=0

endloop

endloop

既然已经有了参数:r ,θ,φ那么就可以代入公式了

公式:

  x=rsinθcosφ

  y=rsinθsinφ

  z=rcosθ

因此:

X=r*sin(angle[2])*cos(angle[3])

Y=r*sin(angle[2])*sin(angle[3])

Z=r*cos(angle[2])

那么至此X,Y,Z已经利用WE中的循环数计算出来了

接下来怎么利用就看阁下的兴趣爱好了。

可以建一大堆单位在坐标(X,Y),改变飞行高度为Z

可以用闪电效果链接成一个球:

链接方式如下:

X[index]→X[index+1]

Y[index]→Y[index+1]

Z[index]→Z[index+1]
摩天轮公式算球

不得不提一下摩天轮公式计算球体。

抽象一下,同时建立n个a值取平均分在0~180

以内的圆,那么,建立的其实就是一个球体!

如:
local real r=500 (建立的圆半径)

local real array a(倾斜角度)

local real array angle

local real dis

local real h

local integer i=0
local integer n=0

loop

exitwhen i>35

set i=i+1
loop
exitwhen n>18(建立18个圆,平均每10°一个)
set n=n+1

set a[n]=180/18*n(因为当a值占满180°以内时就能实现整个球体计算了,所以没必要用360来除)(倾斜角度)

set angle[1]=360/36*I2R(i)

set dis=sqr( (r*CosBJ(angle[1])^2+(r*SinBJ(angle[1])*CosBJ( a[n])^2) (求取距离)

set angle[2]=Atan(CosBJ(a[n])*SinBJ(angle[1])/CosBJ(angle[1])) (求取方向)

set h=r*SinBJ(angle[1])*Sin(a[n]) (求取高度)

If angle[1]>90 and angle[1]≤270)

  then set angle[2]=angle[2]+180

else

endif
endloop

endloop

WE空间造字
(不好意思,借用几位的大名应该不会算侵犯肖像权吧=。=)

想知道原理吗?

其实这种算法其实是一种糊弄,只要能做平面就能做立体。

其中使用了二进制数组,就算是白痴也能学会!

接下来是使用循环数把它转换到WE里边去~

这次麻烦点用T来说明好了

用 string[ ] 设置好

用循环+判断

事件

单位 - 任意单位 开始施放技能

条件

动作

设置 c = (技能施放点)

设置 技能 释放位置

设置 a = (从 c 开始,距离 710.00 ,方向为 135.00 度的位移处)

然后做出相应的调整 把 字体创建的开始点 弄好 偶弄才 左上角

设置 b = (从 a 开始,距离 150.00 ,方向为 270.00 度的位移处)

在做调整 以上都不影响技能效果

For循环整数A从 1 到 26, 做动作

用循环a 判断字符的个数 26 表示 每行 有几个字符

Loop - 动作

For循环整数B从 1 到 20, 做动作

用循环b判断字符的行数

Loop - 动作

如果所有条件成立则做动作1,否则做动作2

If - 条件

(截取 string[循环整数B [R]] 的 循环整数A [R] - 循环整数A [R] 字节部分) 等于 1

Then - 动作

设置 d = (从 b 开始,距离 (转换 (15 x 循环整数B [R]) 为实数) ,方向为 270.00 度的位移处)

设置字体竖排的所有字符

设置 location = (从 d 开始,距离 (转换 (15 x 循环整数A [R]) 为实数) ,方向为 0.00 度的位移处)

设置字体横排的所有字符

单位 - 创建 1 个 马甲 给 ((触发单位) 的所有者) 在 location ,面向角度为 默认建筑朝向 度

单位 - 设置 5.00 秒 水元素 类型的生命周期对 (最后创建的单位)

点 - 清除 d

点 - 清除 location

Else - 动作

上边造出的将会是一个“王”字

15 之类的自己调 那是 每个马甲直接的 密度

开始大家可以用记事本设置好字符串,然后再一条一条地复制到WE上去即可

上述为平面造字

如果想要造立体字

可将 设置 location = (从 d 开始,距离 (转换 (15 x 循环整数A [R]) 为实数) ,方向为 0.00 度的位移处)这一条

改为:设置 height =500(任意高度,你想要的字的最大高度)- 15*(转换 (15 x 循环整数A [R]) 为实数)) 即可

若不使用500减去计算值,那么计算出的字是倒过来的,不过这样也挺有意思。

那么现在自己试试吧!

这种做法不仅能造字,而且能作画!灰常强大...

弧度制计算

当你打开别人的作品(如雪妖王的)时看到π/180那种运算,是否

会令你大跌眼镜?就好像从没有看到过的数学计算似的,或者似曾

相识,其实那就是所谓的弧度制计算。

现在来了解一下弧度制





我们在初中几何里学过角的度量,规定周角1/360为1度的角.这种

用度来作为单位来度量角的单位制叫做角度制,弧度制也是另一

种度量角的单位制,它的符号式 rad ,读作弧度.

我们把长度等于半径长的弧所对的圆心角叫做1弧度的角,即用弧

度制度量是,这样的圆心角等于 1 rad.

弧AB的长等于半径r,AB所对的圆心角∠AOB就是1弧度的角

圆心角∠AOC所对的弧AC的长l=2r,那么交AOC的弧度数就是: l/2=2r/r=2

当圆心角为周角时,它所对的弧(即圆周)长l=2πr,所以周角的弧度数是:   l/r=2πr/r=2π

由此可知,任意0~360°的角的弧度数x=l/r必然适合不等式0≤x<2π(也做0≤x<360°)

角的概念推广后,弧的概念也随之推广,任一正角的弧度数都是一个整数.

如果角α时一个负角,那么它的弧度数是一个负数;零角的弧度数是0.例如,当弧长l=4π

且所对的圆心角表示负角时,这个圆心角的弧度数是:-l/r=-4πr/r=-4π.

一般地,可以得到:正角的弧度数是一个正数,负角的弧度数是一个负数,零角的弧度数

是0;角α的弧度数的绝对值: |α|=l/r

其中l是以角α作为圆心时所对的弧的长,r是圆的半径。

这种以弧度作为单位来度量角的单位制,叫做弧度制。

用角度值和弧度制来度量零角,单位不同,当量数相同(都是0);用角度制和弧度制

度量任一非零角,单位不同,量数也不同。

下面给出弧度制的换算方法:

把角度换为弧度(重点):

因为周角的弧度数是2π,而在角度制下它是360°,所以:

360°=2π rad

180°=π rad

1°=π/180 rad≈0.01745 rad

把弧度换成角度:

2π rad=360°

π rad=180°

1 rad=(180/π)°≈57.30°=57°18′

关于对弧度的研究还得大家代入WE去测试

在度量时选择弧度制在后边添上公式即可

不得不提一下:

弧度制中的正、余弦值计算要快的多,比较柔和。

所以做曲线时想要完美,可以尽量用弧度制。

柔和直线运动
假设dis为两点间的距离

时间:每0.01秒

动作:移动马甲到(以马甲为中心,距离10,方向两点间方向)

这样的移动方式你似乎会觉得古板,死气沉沉的?

而且当目标点突然改变时可能会出现方向判定BUG,如:到处乱飞等

其实这种移动方式是利用了大家耳熟能详的物理公式:

S=Vt

那么现在我们换一种方式来计算吧:

把公式变换一下:

t=S/V

表达的意思是:我们要马甲在规定的时间内必到目标点

例如:

先设置好变量:r=dis/20(20为随机实数,可根据需要到达时间设置)

需要用的时间为:t=每XXX秒*(上边dis除的任意实数)

        上述可写为:t=0.01*20(如下)

时间:每0.01秒

动作:移动马甲到(以马甲为中心,距离r,方向两点间方向)

那么单位绝对会在0.01*20=0.2秒时到达

这个公式对于玩家控制时间,准时执行另一个动作等起了莫大的帮助。

那么接下来再换一下思维:

在:

时间:每0.01秒
  
            动作:移动马甲到(以马甲为中心,距离r,方向两点间方向)

这个触发中添加两条:设置dis=两点间距离,设置r=dis/20

即为:

时间:每0.01秒  
  
动作:设置dis=两点间距离

            设置r=dis/20

             移动马甲到(以马甲为中心,距离r,方向两点间方向)

即是说:每0.01秒不断改变dis这个值,那么r=dis/20也会跟着变,

意义为每0.01秒把变化的距离分成20份,一直这样分下去,直到

达到目标位置附近为止!(为什么说是附近呢?因为用这种计算方式永远也不可能

和目标位置重叠)

而且运动方式就是标题:柔和直线运动

这种运动给予玩家视觉上的一种和谐,柔美,试用于任何环境!
                                          

如果在上述公式中:r=dis/20的比值为0.618(传说中的黄金分割比,那么你将看到

史上最完美的直线运动!)

这种计算方法本身带有跟踪效果,实用性非常之高!

Atan计算两点的方向

前边已经提到过坐标算法了

与空间建任意圆的Atan求解定义域

那么现在再次利用Atan(反正切)计算:

已知两点坐标,求解方向

已知A点坐标为(X1,Y1),B(X2,Y2)

求A点到B点的方向:

Atan的运算方式是Y:X求出角度:

即:

两点的方向为:Atan((Y2-Y1):(X2-X1))

此种算法适用于已知两点求角或不想设置角度变量的朋友。

mod循环运算

在了解mod搭配循环数运算之前,我们先来学习下mod的运算方式..

mod:

被除数 mod 除数 = 余数 (除数≠0)
如:

10 mod 6 =4

10 mod 5 =0

10 mod 4 =2

被除数为负数时结果为负数或零。除数的符号则没有影响。

下面准备一组数列:

0,1,2,3,4,5,6,7,8 ,9

假设上述数列中1~9每个数字代表一个字母

如:

0=a 1=b

2=c 3=d

4=e 5=f

6=g 7=h

8=i  9=j

要使:0=b,1=c,2=d....9=a

这样的循环数组问题就可以用mod来解决

但要怎么来调整被除数,使它和除数(0~9)的余数=除数+1(除9外)呢?

那么如下本人推导的一个代入公式:

9+2+(0~9) mod 9+1 =(2~(9→0))

推导方式就是简单的代入法和猜想法,这儿不便细说了...

综上所述:

可将公式推出为:

n=(最小值为0~最大值为10)中的随机整数(Ps,数列的最小值必为0!)

i=最大值10+2

那么可推出:

i+n mod i-1 = n+1(if n=max,then n=0)

代入WE可配合循环数如:

设置 n(整数)=6

设置 i=n+2

For 循环整数A 0~6,做动作:(Ps.数列的最小值必为0!)

   设置 n = i+循环整数A  mod n+1
        
         即为n=n+1(当n为6时,计算结果为0)

如果i=n+3呢?

  那么 n= i+循环整数A mod n+1

         n=n+2(当n为6时,计算结果为1)

以此类推....

i=n+4

     n= i+循环整数A mod n+1
         n=n+3(当n为6时,计算结果为2)

i=n+5

     n= i+循环整数A mod n+1
         n=n+4(当n为6时,计算结果为3)

i=n+6

     n= i+循环整数A mod n+1
         n=n+5(当n为6时,计算结果为4)
......
现在你应该明白这个mod计算公式的意义了吧?

聪明的你也应该想到了它的用途

如:无限循环数组

         制造变量传递等...

不想这么好的技能算法精华没了,搬运自飞飞世界,学得此算法,必能无敌于天下
[img]https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fd.zdqx.com%2Fhyrz_161
红颜祸水 发表于 2020-10-22 08:19:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
红颜祸水 发表于 2020-10-22 09:29:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
hahatgj 发表于 2020-10-22 14:30:29 | 显示全部楼层
牛牛牛牛牛牛牛牛牛牛B啊!大佬厉害!
蓝忘机 发表于 2020-10-24 19:17:03 | 显示全部楼层
  “你遇见一个人,犯了一个错,你想弥补想还清,到最后才发现你根本无力回天,犯下的罪过永远无法弥补,我们永远无法还清欠下的…只要错了,就是错了永远无法弥补。”
CNWorth 发表于 2020-10-24 23:00:42 | 显示全部楼层
这个教程解答了我好几年的疑问!感谢!
南小鸟 发表于 2020-10-26 13:18:10 | 显示全部楼层
感谢分享
lhd11112222 发表于 2020-10-27 15:56:32 | 显示全部楼层
我草好东西啊
大黄狗 发表于 2020-10-27 16:27:49 | 显示全部楼层
666666

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
1.主题内容请一定要附带预览图片,谢谢;
2.搬运来的东西请尽量不要卖钱!;
3.发帖有任何疑问请联系QQ21031394;
=====发表回复规则=======
1.禁止直接复制标题内容的;
2.禁止纯数字或者纯字母的;
3.禁止乱打一通文不对题;
4.禁止屠版和刷分行为;
第一次扣分处理,第二次扣分+警告,警告三次禁言三天,绝不手软,情况严重的直接封号,请大家珍惜自己的账号!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
天工维度唯一QQ群
786014245

欢迎进群交流,入群答案:编辑器

  • 官方在线客服

    QQ客服:小雪

    点击交谈

    QQ客服:砂糖

    点击交谈

    团队老大:荀公子

    商务合作
  • 上海市静安区共和新路4718号宏慧新汇园6号楼603室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方QQ群

Powered by 天天RPG&DZX3.4 ©2020-2021 Comsenz Inc.提百万设计( 沪ICP备18032615号-1 )营业执照