我不确定这个问题涉及哪个领域,但我会试一试。 我正在尝试计算Mandelbrot集。最大的区别是我的输出是3D模型。该集的计算是精确完成的,但是一旦我尝试缩放到x,y点(位于2D平面上),它就不能按预期工作。 这里的主要概念是通过提取下一个缩放点,我将能够计算我的集合的新边界边缘。当
xru,yru = top right point of the set
xld yld = buttom left button
direction = 1 = zoom in
constVal = the original size of the set : 2X2
constVal[0] = xru , yru (at beginning)
constVal[1] = xld, yld (at beginning)
结果是缩放到未知点。我想计算出了问题。我试着做以下事情:
int direction = 1;
double ratiox = foundPointOnHost.x / ((constVal[1][0] - constVal[0][0]));
double ratioy = foundPointOnHost.z / ((constVal[1][1] - constVal[0][1]));
double xrange = xru-xld;
double yrange = yru-yld;
xld += direction*0.01*ratiox*xrange;
xru -= direction*0.01*(1.-ratiox)*xrange;
yld += direction*0.01*(1.-ratioy)*yrange;
yru -= direction*0.01*ratioy*yrange;
编辑:我回顾了你给我的一些例子,但我仍然没有找到最符合我情况的合适答案。
答案 0 :(得分:1)
好吧,我找到了正确的解决方案。 由于轴都已恢复,我写了以下内容:
double ratiox = foundPointOnHost.x / (constVal[1][0] - constVal[0][0]);
double ratioy = 1-foundPointOnHost.z / (constVal[1][1] - constVal[0][1]);
double xrange = xru-xld;
double yrange = yru-yld;