到目前为止,这些似乎都有效,它们有待讨论,我相信它们会更好
这就是我想使用矩阵的原因
- Sub TestMultiplyMatrix()
- Dim P, Ent As AcadEntity
- Dim i As Integer
- Dim M, ContextData, TransMatrix
-
- ThisDrawing.Utility.GetSubEntity Ent, P, TransMatrix, ContextData
- ThisDrawing.ModelSpace.AddPoint P
- If VarType(ContextData) = vbEmpty Then
- MsgBox "This is not a block"
- Exit Sub
- End If
- M = InverseMatrix(TransMatrix)
-
- P = TransformPt(M, P)
- P = NearestPtOnObject(Ent, P)
- P = TransformPt(TransMatrix, P)
- ThisDrawing.ModelSpace.AddPoint P
-
- End Sub
NearestPtOnObject(Ent, P)函数不包括在内,因为我仍在研究它。
我以为走到这一步会让我从数学中休息一下,但相反,我似乎打开了潘多拉的盒子。
离椭圆最近的点是疯狂的。我甚至不知道这篇文章是提供了证明还是问题。我倾向于使用提到“最佳猜测”的那个, |