随笔分类 - 代码可视化
摘要:现时的做法是对寻路结果进行平滑,每个结构不知道其他寻路结果的存在,因此无法在结果曲线的平滑度和结果曲线的重合度上取得平滑。要么结果曲线很平滑,但曲线十分分散;要么结果曲线重合度高,但曲线本身不平滑。改进的方法有两种。一种是在所有路线完成导引后,统一对其经过的边上的控制点进行平滑。这种方法比较简单,而且在路线较少时计算量较低。缺点是一次要处理一批路线,不同批处理的路线得到的结果不同。可以用一个开关解...
阅读全文
摘要:最近把代码数据库分析部分由qt creator移植到understand数据库了。移植之后分析代码方便了很多。可视化部分没有大的修改。先发几张效果图。项目总览命名空间和类类内部关系当前的问题1.类内部太过混乱。(1)函数、变量之间依赖关系的连线太混乱,无法分辨主次。(2)函数、变量等图标占的空间过多。而且图标不能有效传达必要的信息。解决办法:我认为较好的使用过程应该是这样的:用户决定观察一个类时,...
阅读全文
摘要:功能支持分析的语言统计总的代码数据统计单个文件的数据分析代码复杂度分析代码格式文件的依赖关系文件夹依赖关系文件夹包含关系、代码量understand提供了很多图表,同时它可以根据源码分析出一个数据文件,用户通过它提供的API可以读取这个文件,获取各种依赖关系,包括这些:总结understand的优势是分析功能十分强大understand的问题是提供的分析数据、图表太多,没有一种有条理的方式引导用户...
阅读全文
摘要:之前做的代码可视化项目,由于时间不足没有继续做下去,现在发个暂时的效果。用户可以通过地图看到各个模块相对代码量放大后则可以看到类之间的依赖关系每个被围起来的“城市”表示一个类,“城市”之间的道路表示依赖关系,地形表示依赖层次的高低以上两图楼房表示函数,树木表示变量,道路表示依赖关系,如函数调用、变量引用,道路的等级表示依赖层次的高低,粗细表示依赖的数量来自为知笔记(Wiz)
阅读全文
摘要:检查post processor是否正确project 布局每次移动大小和的0.8倍(步长=0.8)1.0倍可见重叠现象仍然很严重把最大迭代次数设为100后不解算重叠左图迭代100次,步长1.0,可以正确解算(为什么commands半径不一样???因为这些元素自身大小也是依赖于布局决定)右图迭代1000次,interfaces位置发生变化步长改为0.2,也可以正确解算,但布局差异较大to...
阅读全文
摘要:确定较好的边绑定参数没有对轮廓进行重采样平滑参数为0.1,2没有对轮廓进行重采样平滑参数为0.5,8对轮廓做2倍重采样,平滑参数0.1,2出现了一些“主干道”2倍重采样平滑参数0.5,2“主干道”较为平滑2倍重采样平滑参数0.1,104倍重采样平滑参数0.5,10得出一些经验,平滑迭代次数较低的时候,曲线不容易分散采样倍数太高时,计算时间增多,曲线不光滑为了把一些边更好地绑定在一起,有...
阅读全文
摘要:搞清楚平面布局类的各个参数orthoLayout此类的getBoundingBox()函数可以返回包围盒separationcOverhangoptionsmargin结果200.40010.400可见separation控制线之间的距离此值不能是0201000cOverhang似乎没什么影响,但是它的值也不能是0200.40100margin对结果没有什么影响当结果有多个连通分量时,m...
阅读全文
摘要:检查不同平均距离计算方法的结果1.所有点对距离的调和平均2.每个点与其他点最短距离的算术平均总半径 =5622.2026没有明显变化。用第二种方法似乎布局反而更稀疏。3. 采用2的方案,再把sparseFactor从0.2改为1.0总的坐标范围反而变小,总半径 =3889.0559按道理,avgDist *scaleRate = 2 * avgSize * m_sparseF...
阅读全文
摘要:检查不同布局算法备注CircularLayout可以非连通FastMultipoleMultilevelEmbedderFMMMLayout可以非连通StressMajorization未成功必须连通GEMLayout未成功BalloonLayout未成功需要为树?PlanarizationLayout来自为知笔记(Wiz)
阅读全文
摘要:这个是暂时的效果,一个点是一个类或者全局函数。高度场暗示依赖关系,高度高的会依赖高度低的。 下面是代码可视化的算法流程: 词频向量的每一个元素是一个词的出现次数,而一个代码元素(类或函数)对应一个词频向量。词语从类名、函数名、函数代码之中提取。这一步听起来容易,做起来难,因为要对代码做语法分析,而C
阅读全文