5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 822|回复: 5
打印 上一主题 下一主题

翼型是怎么在电脑上编出来的呢?

[复制链接]
跳转到指定楼层
楼主
发表于 2011-9-27 19:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题

欢迎继续阅读楼主其他信息

沙发
发表于 2011-9-27 20:59 | 只看该作者
用 Profili 2。
3
发表于 2011-9-28 01:08 | 只看该作者
直线化曲算法
4
发表于 2011-9-29 11:20 | 只看该作者
B-draw.bas
运行环境:BASIC.EXE

程序:
10 XM=619:YM=199:N=50:CLS:KEY OFF:SCREEN 2:GOSUB 120
20 CLS:FOR S=0 TO NV-1 :LINE(P(1,S),P(2,S))-(P(1,S+1),P(2,S+1)):NEXT:U=0:GOSUB 170
30 X1=X:Y1=Y
40 FOR K=1 TO N:U=(K/N)*NV:GOSUB 170
50 X2=X:Y2=Y:LINE(X1,Y1)-(X2,Y2):X1=X2:Y1=Y2:NEXT
60 INPUT"改动吗";A$:IF A$<>"Y" THEN 110
70 INPUT"控制点号";NUM
80 INPUT "控制点坐标 XC,YC";XC,YC:P(1,NUM)=XC:P(2,NUM)=YC:LOCATE 1,1:INPUT"满意吗";B$:IF B$="N" THEN 70
90 GOSUB 130
100 GOTO 20
110 END
120 INPUT"控制点个数 N= ";NV:DIM P(2,NV+2) :FOR J=0 TO NV:INPUT "控制点坐标 XC,YC ";XC,YC:P(1,J)=XC:P(2,J)=YC:NEXT
130 IF P(1,0)=P(1,NV) AND P(2,0)=P(2,NV) THEN 150
140 FOR I=1 TO 2:P(I,NV+2)=P(I,0)*2-P(I,1):P(I,NV+1)=P(I,NV)*2-P(I,NV-1):NEXT:GOTO 160
150 FOR I=1 TO 2:P(I,NV+2)=P(I,NV-1):P(I,NV+1)=P(I,1):NEXT
160 CLS:RETURN
170 X=0:Y=0:FOR J=0 TO NV+1:GOSUB 210
180 X=X+P(1,J)*BS:Y=Y+P(2,J)*BS:NEXT
190 J=-1:GOSUB 210
200 X=X+P(1,NV+2)*BS:Y=Y+P(2,NV+2)*BS:RETURN
210 BX=U-J:IF BX>=-1 AND BX<=1 THEN 240
220 IF (BX>1 AND BX<2) OR (BX<=1 AND BX>-2) THEN 250
230 BS=0:GOTO 260
240 BS=(ABS(BX))^3/2-BX^2+2/3:GOTO 260
250 BS=-(ABS(BX))^3/6+BX^2-2*ABS(BX)+4/3
260 RETURN
5
发表于 2011-9-29 11:25 | 只看该作者
这是93年左右的程序了
可以改改
在VB6上用

主要是在一个封闭(开放)的折线内
绘出比较平滑的封闭(开放)曲线
通过调整控制点,可以改变调整

最早是在AUTOCAD 2.6上
用于飞机、车辆外形设计
6
发表于 2011-9-29 11:29 | 只看该作者
@ @ 好复杂,看不懂
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表