![]() |
|
||||||||||
|
|||||
|
to Dindin: лана, пободаемся еще раз
В ссылке на готовый класс (image distortion) у чела все сделано вот так (основа, нет смысла весь код приводить):v2.update = function () { var v5 = Math.atan2; var v7 = Math.sqrt; var v12; var v11; var v9; var v3; var v6; var v2; var v4; var v10; var v13; var v8; this._x = this.p0.sx; v11 = this._x; v3 = this.p1.sx - v11; this._y = this.p0.sy; v9 = this._y; v6 = this.p1.sy - v9; v10 = v5(v6, v3); v2 = this.p2.sx - v11; v4 = this.p2.sy - v9; v13 = v5(v4, v2); v8 = (v10 - v13) / 2; this._rotation = 57.29577951308232 * (-v8 + v10); this._yscale = 100 * Math.tan(v8); v12 = 70.71067811865474 / Math.cos(v8); this.innerClip._xscale = (v7(v2 * v2 + v4 * v4) / v12) * this.t_width; this.innerClip._yscale = (v7(v3 * v3 + v6 * v6) / v12) * this.t_height; }; А теперь найди десять отличий (старый исходник DEAF'а): x01 = x0-x1; y01 = y0-y1; x21 = x2-x1; y21 = y2-y1; alfa = Math.atan2(y01, x01)*180/Math.PI; beta = Math.atan2(y21, x21)*180/Math.PI; gama2 = (alfa-beta)/2; delta = 45-gama2; cosdelta = Math.cos(Math.PI/180*delta); sindelta = Math.sin(Math.PI/180*delta); this._rotation = alfa-90-gama2; this._x = x1; this._y = y1; this._xscale = (cosdelta-sindelta)*100; this._yscale = (sindelta+cosdelta)*100; this.v._rotation = 45; this.v._xscale = Math.SQRT(x21*x21+y21*y21); this.v._yscale = Math.SQRT(x01*x01+y01*y01); (здесь ниче не оптимизировано специально для наглядности..., если чуток подогнать, то будет фактически одно и тоже, что в верхнем исходнике) Так вот с какого фига модный класс, на который ты указал, будет работать быстрее, и лучше?????? Нифига подобного!!!! tpNucer: видимость полигона vid = (x2-x0)*(y1-y0)-(y2-y0)*(x1-x0); if (vid>0) {полигон видно} else {невидно}
__________________
Взгляд неискушенного зорче, слова ребенка честнее, простые пути - верны ... |
![]() |
Часовой пояс GMT +4, время: 17:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|