锘??xml version="1.0" encoding="utf-8" standalone="yes"?> If we have a plane vector n = [a, b, c, d] which describes a plane then for any point p = [x, y, z, 1] in that plane the follow equation holds: nt p = ax + by + cz + d = 0 If for a point p on the plane, we apply an invertible transformation R to get the transformed point p1, then the plane vector n1 of the transformed plane is given by applying a corresponding transformation Q to the original plane vector n where Q is unknown. p1 = R p n1t p1 = 0 (Q n)t (R p) = 0 Qt R = I n1 = Q n = (R-1)t n
]]>
var origin:Vector2D = new Vector2D(0, 0);
var stl = [];
var v = new Vector2D(0, 1);
var sp = 4;
var rad = 2.0 * Math.PI / sp;
for (var i = 0; i < sp; ++ i) {
var g = rad * i;
var ttt = v.clone();
ttt.rotate(g);
stl.push(ttt);
}
// var stl = [new Vector2D(0,1), new Vector2D(-1,0), new Vector2D(0,-1), new Vector2D(1,0)];
var vx = [-1, 1, 1, -1];
var vy = [-1, -1, 1, 1];
var fib = [1, 2, 3, 5, 8, 13, 21];
// fib = [1, 2, 3, 4, 5, 6, 7, 8];
var temp:Vector2D = new Vector2D();
var prev:Vector2D = new Vector2D();
for (var i = 0; i < stl.length; ++ i) {
// console.log("------------------");
var s = stl[ i ];
// console.log(s.toString());
for (var j = 0; j < fib.length; ++ j) {
temp.set45Vector();
var vecx = vx[(i+j) & 3];
var vecy = vy[(i+j) & 3];
temp.scaleByXY(vecx * fib[ j ], vecy * fib[ j ]);
this.stars.push(new Star(s.X, s.Y));
s.copyTo(prev);
s.transform(temp);
var circleCoordinate:Vector2D = prev.cal45CircleCoordinate(s, (vecy/vecx) > 0);
// console.log("circle coordinate", circleCoordinate.toString());
var size = 7;
var rad:number = Math.PI / 2 / size;
if (j > -1) {
for (var k = 1; k <= size; ++ k) {
var tt:Vector2D = prev.clone();
tt.transform(circleCoordinate, false);
tt.rotate(rad * k);
tt.transform(circleCoordinate, true);
this.stars.push(new Star(tt.X, tt.Y));
// console.log("tt = ", tt.toString());
}
}
// console.log(s.toString());
}
}
]]>
n1 = Q n
nt Qt R p = 0
Qt = R-1
Q = (R-1)t
]]>
]]>
涓鐩村榻愭鍧愭爣榪欎釜姒傚康鐨勭悊瑙d笉澶熷交搴曪紝鍙澶ч儴鍒嗙殑涔︿腑璇撮亾“榻愭鍧愭爣鍦ㄤ豢灝勫彉鎹腑闈炲父鐨勬柟渚?#8221;錛岀劧鍚庡氨娌℃湁浜嗗悗鏂囷紝浠婂ぉ鍦ㄤ竴涓彨鍋?#8220;涓夌櫨騫?閲嶇敓”鐨勫崥瀹笂鐪嬪埌涓綃囧叧浜庨忚鎶曞獎(jiǎng)鍙樻崲鐨勬帰璁ㄧ殑鏂囩珷錛屽叾涓湁瀵歸綈嬈″潗鏍囨湁闈炲父綺捐緹鐨勮鏄庯紝鐗瑰埆鏄拡瀵硅繖鏍蜂竴鍙ヨ瘽榪涜浜嗘湁鍔涚殑璇佹槑錛?em style="margin: 0px; padding: 0px;">“榻愭鍧愭爣琛ㄧず鏄綆楁満鍥懼艦瀛︾殑閲嶈鎵嬫涔嬩竴錛屽畠鏃㈣兘澶熺敤鏉ユ槑紜尯鍒嗗悜閲忓拰鐐癸紝鍚屾椂涔熸洿鏄撶敤浜庤繘琛屼豢灝勶紙綰挎э級(jí)鍑犱綍鍙樻崲銆?#8221;—— F.S. Hill, JR銆?/p>
鐢變簬浣滆呭榻愭鍧愭爣鐪熺殑瑙i噴鐨勪笉閿欙紝鎴戝氨鍘熷皝涓嶅姩鐨勬憳鎶勮繃鏉ワ細(xì)
瀵逛簬涓涓?/span>鍚戦噺v浠ュ強(qiáng)鍩?/span>oabc錛?span style="margin: 0px; padding: 0px; font-size: 12pt; font-family: "Times New Roman";">鍙互鎵懼埌涓緇勫潗鏍?/span>(v1,v2,v3)錛屼嬌寰?/span>v = v1 a + v2 b + v3 c 錛?/span>1錛?/span>
鑰屽浜庝竴涓?/span>鐐?/em>p錛屽垯鍙互鎵懼埌涓緇勫潗鏍囷紙p1,p2,p3錛夛紝浣垮緱 p – o = p1 a + p2 b + p3 c 錛?/strong>2錛夛紝
浠庝笂闈㈠鍚戦噺鍜?/span>鐐?/em>鐨勮〃杈撅紝鎴戜滑鍙互鐪嬪嚭涓轟簡鍦ㄥ潗鏍囩郴涓〃紺轟竴涓?/span>鐐?/em>錛堝p錛夛紝鎴戜滑鎶婄偣鐨勪綅緗湅浣滄槸瀵硅繖涓熀鐨勫師鐐?/span>o鎵榪涜鐨勪竴涓綅縐伙紝鍗充竴涓悜閲?#8212;—p – o錛堟湁鐨勪功涓妸榪欐牱鐨勫悜閲忓彨鍋?em style="margin: 0px; padding: 0px;">浣嶇疆鍚戦噺——璧峰浜庡潗鏍囧師鐐圭殑鐗規(guī)畩鍚戦噺錛夛紝鎴戜滑鍦ㄨ〃杈捐繖涓悜閲忕殑鍚屾椂鐢ㄧ瓑浠風(fēng)殑鏂瑰紡琛ㄨ揪鍑轟簡鐐?/span>p錛?strong style="margin: 0px; padding: 0px;">p = o + p1 a + p2 b + p3 c (3)
(1)(3)鏄潗鏍囩郴涓嬭〃杈句竴涓?/span>鍚戦噺鍜?em style="margin: 0px; padding: 0px;">鐐?/em>鐨勪笉鍚岃〃杈炬柟寮忋傝繖閲屽彲浠ョ湅鍑猴紝铏界劧閮芥槸鐢ㄤ唬鏁板垎閲忕殑褰㈠紡琛ㄨ揪鍚戦噺鍜岀偣錛屼絾琛ㄨ揪涓涓偣姣斾竴涓悜閲忛渶瑕侀澶栫殑淇℃伅銆傚鏋滄垜鍐欏嚭涓涓唬鏁板垎閲忚〃杈?/span>(1, 4, 7)錛岃皝鐭ラ亾瀹冩槸涓悜閲忚繕鏄釜鐐癸紒
鎴戜滑鐜板湪鎶婏紙1錛夛紙3錛夊啓鎴愮煩闃電殑褰㈠紡錛?span style="margin: 0px; padding: 0px; font-size: 12pt; color: red;">v = (v1 v2 v3 0) X (a b c o)
p = (p1 p2 p3 1) X (a b c o),榪欓噷(a,b,c,o)鏄潗鏍囧熀鐭╅樀錛屽彸杈圭殑鍒楀悜閲忓垎鍒槸鍚戦噺v鍜岀偣p鍦ㄥ熀涓嬬殑鍧愭爣銆?/span>榪欐牱錛屽悜閲忓拰鐐瑰湪鍚屼竴涓熀涓嬪氨鏈変簡涓嶅悓鐨勮〃杈撅細(xì)3D鍚戦噺鐨勭4涓唬鏁板垎閲忔槸0錛岃?/span>3D鐐?/span>鐨勭4涓唬鏁板垎閲忔槸1銆傚儚榪欑榪欑鐢?/span>4涓唬鏁板垎閲忚〃紺?/span>3D鍑犱綍姒傚康鐨勬柟寮忔槸涓縐嶉綈嬈″潗鏍囪〃紺恒?/span>
榪欐牱錛屼笂闈㈢殑(1, 4, 7)濡傛灉鍐欐垚錛?/span>1,4,7,0錛夛紝瀹冨氨鏄釜鍚戦噺錛涘鏋滄槸(1,4,7,1)錛屽畠?yōu)鏄釜鐐广?/span>涓嬮潰鏄浣曞湪鏅氬潗鏍?/span>(Ordinary Coordinate)鍜岄綈嬈″潗鏍?/span>(Homogeneous Coordinate)涔嬮棿榪涜杞崲錛?/span>
(1)浠庢櫘閫氬潗鏍囪漿鎹㈡垚榻愭鍧愭爣鏃?/span>
濡傛灉(x,y,z)鏄釜鐐癸紝鍒欏彉涓?/span>(x,y,z,1);
濡傛灉(x,y,z)鏄釜鍚戦噺錛屽垯鍙樹負(fù)(x,y,z,0)
(2)浠庨綈嬈″潗鏍囪漿鎹㈡垚鏅氬潗鏍囨椂
濡傛灉鏄?/span>(x,y,z,1)錛屽垯鐭ラ亾瀹冩槸涓偣錛屽彉鎴?/span>(x,y,z);
濡傛灉鏄?/span>(x,y,z,0)錛屽垯鐭ラ亾瀹冩槸涓悜閲忥紝浠嶇劧鍙樻垚(x,y,z)
浠ヤ笂鏄氳繃榻愭鍧愭爣鏉ュ尯鍒嗗悜閲忓拰鐐圭殑鏂瑰紡銆備粠涓彲浠ユ濊冨緱鐭ワ紝瀵逛簬騫崇ЩT銆佹棆杞?/span>R銆佺緝鏀?/span>S榪?/span>3涓渶甯歌鐨勪豢灝勫彉鎹紝騫崇Щ鍙樻崲鍙浜庣偣鎵嶆湁鎰忎箟錛屽洜涓烘櫘閫氬悜閲忔病鏈変綅緗蹇碉紝鍙湁澶у皬鍜屾柟鍚?
鑰屾棆杞拰緙╂斁瀵逛簬鍚戦噺鍜岀偣閮芥湁鎰忎箟錛屼綘鍙互鐢ㄧ被浼間笂闈㈤綈嬈¤〃紺烘潵媯(gè)嫻嬨備粠涓彲浠ョ湅鍑猴紝榻愭鍧愭爣鐢ㄤ簬浠垮皠鍙樻崲闈炲父鏂逛究銆?/span>
姝ゅ錛屽浜庝竴涓櫘閫氬潗鏍囩殑鐐?/em>P=(Px, Py, Pz)錛屾湁瀵瑰簲鐨勪竴鏃忛綈嬈″潗鏍?/span>(wPx, wPy, wPz, w)錛屽叾涓?/span>w涓嶇瓑浜庨浂銆傛瘮濡傦紝P(1, 4, 7)鐨勯綈嬈″潗鏍囨湁(1, 4, 7, 1)銆侊紙2, 8, 14, 2錛夈侊紙-0.1, -0.4, -0.7, -0.1錛夌瓑絳?/span>銆?/span>鍥犳錛屽鏋滄妸涓涓偣浠庢櫘閫氬潗鏍囧彉鎴愰綈嬈″潗鏍囷紝緇?/span>x,y,z涔樹笂鍚屼竴涓潪闆舵暟w錛岀劧鍚庡鍔犵4涓垎閲?/span>w錛涘鏋滄妸涓涓綈嬈″潗鏍囪漿鎹㈡垚鏅氬潗鏍囷紝鎶?/span>鍓嶄笁涓潗鏍囧悓鏃墮櫎浠ョ4涓潗鏍囷紝鐒跺悗鍘繪帀絎?/span>4涓垎閲忋?/span>
鐢變簬榻愭鍧愭爣浣跨敤浜?/span>4涓垎閲忔潵琛ㄨ揪3D姒傚康錛屼嬌寰楀鉤縐誨彉鎹㈠彲浠ヤ嬌鐢ㄧ煩闃佃繘琛岋紝浠庤屽F.S. Hill, JR鎵璇達(dá)紝浠垮皠錛堢嚎鎬э級(jí)鍙樻崲鐨勮繘琛?/span>鏇村姞鏂逛究銆傜敱浜庡浘褰㈢‖浠跺凡緇忔櫘閬嶅湴鏀寔榻愭鍧愭爣涓庣煩闃典箻娉曪紝鍥犳鏇村姞淇冭繘浜嗛綈嬈″潗鏍囦嬌鐢紝浣垮緱瀹冧技涔庢垚涓哄浘褰㈠涓殑涓涓爣鍑嗐?/span>
浠ヤ笂寰堝ソ鐨勯槓閲婁簡榻愭鍧愭爣鐨勪綔鐢ㄥ強(qiáng)榪愮敤榻愭鍧愭爣鐨勫ソ澶勩傚叾瀹炲湪鍥懼艦瀛︾殑鐞嗚涓紝寰堝宸茬粡琚皝瑁呯殑濂界殑API涔熸槸寰堟湁鐮旂┒鐨勶紝瑕佹兂鎴愪負(fù)涓鍚嶄笓涓氱殑璁$畻鏈?/span>鍥懼艦瀛?/span>鐨?/span>瀛︿範(fàn)鑰咃紝闄や簡鐭ュ叾鐒跺繀欏昏繕寰楃煡鍏舵墍浠ョ劧銆?/span>榪欐牱鍦ㄩ亣鍒伴棶棰樼殑鏃跺欐墠鑳借繀閫熷畾浣嶉棶棰樼殑鏍規(guī)簮錛屼粠鑰岃В鍐抽棶棰樸?/span>
Tornado鐨勬ā鏉挎敮鎸佹帶鍒惰鍙ュ拰琛ㄨ揪璇彞錛屾帶鍒惰鍙ユ槸浣跨敤 {% 鍜?nbsp;%} 鍖呰搗鏉ョ殑錛屼緥濡?nbsp;{% if len(items) > 2 %} 銆傝〃杈捐鍙ユ槸浣跨敤 {{ 鍜?nbsp;}} 鍖呰搗鏉ョ殑錛屼緥濡?nbsp;{{ items[0] }} 銆?/p>
鎺у埗璇彞鍜屽搴旂殑Python璇彞鐨勬牸寮忓熀鏈畬鍏ㄧ浉鍚屻傛垜浠敮鎸?nbsp;if 銆?nbsp;for 銆?nbsp;while 鍜?nbsp;try 錛岃繖浜涜鍙ラ昏緫緇撴潫鐨勪綅緗渶瑕佺敤 {% end %} 鍋氭爣璁?br />
鍥劇墖鍐呭鏃犻渶淇濆瓨鍒?jpeg涓? 鍏蜂綋鍙傝冧笅闈?br />http://en.wikipedia.org/wiki/Data_URI_scheme#HTML
鏄敤mako鏉ュ湪html宓屽python浠g爜
http://blog.csdn.net/luanruisong/article/details/9414635