Phenom

Results 25 comments of Phenom

> 有个问题想请教下,用投影长度大小来比较得到投影最边缘的两个点,应该有个前提是这个多边形所有的点必须是在x轴(或者Y轴)的同一侧吧? 要不然可能出现得到的点不是最边缘的点的情况 不是很理解你的意思,投影都是投影在法线上的,没有严格意义上的x或者y轴

> > > 有个问题想请教下,用投影长度大小来比较得到投影最边缘的两个点,应该有个前提是这个多边形所有的点必须是在x轴(或者Y轴)的同一侧吧? 要不然可能出现得到的点不是最边缘的点的情况 > > > > > > 不是很理解你的意思,投影都是投影在法线上的,没有严格意义上的x或者y轴 > > ![image](https://user-images.githubusercontent.com/8279457/120298520-be964b80-c2fc-11eb-951f-e46b8ef57eb2.png) > 红线假设为AB边的法线,现在求C点的投影长度 > `projection = vexs.map(v => Vector.pro(v, sAxis));` 这段代码得到的投影长度,是图里绿色部分的长度是吧? 我看代码理解为是黄色线的长度 就是黄色的线段没错,如果红线指向的方向为x轴正方向,则C的投影值为正,B为负

> > > > > 有个问题想请教下,用投影长度大小来比较得到投影最边缘的两个点,应该有个前提是这个多边形所有的点必须是在x轴(或者Y轴)的同一侧吧? 要不然可能出现得到的点不是最边缘的点的情况 > > > > > > > > > > > > 不是很理解你的意思,投影都是投影在法线上的,没有严格意义上的x或者y轴 > > > > > > > > > ![image](https://user-images.githubusercontent.com/8279457/120298520-be964b80-c2fc-11eb-951f-e46b8ef57eb2.png)...

> 对数据进行后序遍,由同层级的若干个子节点推算出父节点的位置,再一层一层推至根节点的位置,这样是否可行呢? 不行,我想过,因为子节点的位置也要依赖父节点计算,总之一次遍历是实现不了的

> 不错哇,非常认真仔细,这篇论文我也搜索到,但没仔细研究,还是楼主历害啊。 其实这篇论文还是挺水的。。连伪代码都没有

> 🐂 太厉害了,刚好在写思维导图应用,这篇文章帮上了大忙 能给到你启发就好😁

> 阅读了您的算法,觉得很有参考价值。 > 我有另一种思路, > > 1. 从下向上,递归算出每一个节点的“宽度”,父节点的宽度等于其所有子节点宽度的和 > 2. 从上向下,根据父节点的宽度,计算出起始横左边的位置,然后依次算出,同一层节点的位置 > 3. 递归过程2,得到所有节点的位置 > > 我已经使用别的语言实现了,能够达到类似的效果。 > > 但是,我目前遇到一个问题,无论博主的方法,还是上面的方法,都无法解决,当最后一层节点数过多,整个画布特别宽的问题,希望听听博主的建议,谢谢! 你的方法一开始从下往上,那是不是需要先找到所有叶子结点?找叶子节点的过程也需要一次遍历把? 至于最后一层变得很宽的问题,在这种布局方式下其实基本无解,因为该情况下数据一般都很庞大了,如果需要可视化展示,那就只能加点交互,比如视图拖拽和缩放功能。或者跳出层次布局的思维,看以看看一些非层次的树形结构布局算法。

> 大佬有尝试过节点大小不一致的情况吗 节点大小不一致会比较麻烦,但是其实也可以解决,只要有宽高数据即可。

> 如果高度不一样,并且没有足够的间隔的话,线和图元会相互覆盖 你是指节点高度不一样吗,可以取一行中高度最大的节点的高度吗

> 代码里用到restitution的地方,搜了一遍。貌似restitution没用到受力相关的计算上? 对,restitution的相关计算有问题,之后我就删除了,你可以参考一下其他的物理引擎