tagkelas 发表于 2022-7-6 09:46:56

变换坐标Fal

您好,我是这个论坛的新手(也是Autolisp的新手)。我修改了我在这里看到的代码。
它转换多段线的坐标
这是我在这里找到的代码:
这是我的(只在算法中修改):
如果你乘以x坐标并求和,新的就可以了。但是y坐标有点问题,但我不知道它是什么。
 
例如,对于点(0,0),Excel(选中)给出(327063.85 4457285.55)
但是用这个代码给出(327063.85 4449815.837)
 
以下是excel的功能:
有人能帮我吗?

Lee Mac 发表于 2022-7-6 09:54:40

不确定这是否有任何不同:
 
3

Lee Mac 发表于 2022-7-6 10:04:47

但说实话,Lisp程序写得不是特别好,我可能会考虑重写它

Lee Mac 发表于 2022-7-6 10:07:43

更好的编写方法是允许空选择和错误实体类型的选择:
 
4

tagkelas 发表于 2022-7-6 10:16:33

 
 
这需要另一个)在线路的尽头吗?
 
我也试过另一个,但什么也没试过。还有其他想法吗?
 
谢谢你的关注
 
 
 
我检查了一遍又一遍,但什么也没有。如果我先写y坐标的算法,然后写x坐标,目标y坐标是可以的,但是x坐标有一个错误

CarlB 发表于 2022-7-6 10:21:04

问题是使用变量x和y作为初始坐标和变换后的坐标。
 
当为点0,0计算新x时,计算与正确使用x=0和y=0一样。但在y的计算中,它使用刚刚计算的x=327063.85,而不是x=0。

tagkelas 发表于 2022-7-6 10:26:38

我想可能是这样,但我已经用新的x坐标(x=327063.85)计算了y坐标(手动),但结果不同于此。lsp给出。

CarlB 发表于 2022-7-6 10:30:25

我用你的方程,把它放在Excel里,当x=327063.85,y=0时,我得到了与lisp相同的答案。也许你的手动方法有问题

tagkelas 发表于 2022-7-6 10:38:22

但现在我改变了点的参数,我认为这是可行的。
 
感谢CarlB的建议和Lee Mac修改后的新代码
 
以下是最终结果:
 
5

tagkelas 发表于 2022-7-6 10:42:52

我们可以在前面的代码中存储临时变量吗?
例如
 
如果E=B1+B2
B1=x(x+y)和B2=y(x+y)
 
我想先计算B1和B2,然后计算E。可以这样做吗?
页: [1] 2
查看完整版本: 变换坐标Fal