算法思路:

1、Dae文件有多重坐标系,但所有坐标体系最终归于一个顶级坐标系,因此可以使用偏移值计算各点实际XY值;

2、因阿里云关键点不存在深度,忽略Dae文件的z坐标不做处理;

3、阿里云导出数据点原始坐标以照片左上角为原点,XY均无负值;

4、算法已根据两眼尖点判断照片是否旋转90°;

5、算法以鼻子尖点-眼睛内尖点之间的距离作为基准值与Dae模型进行整体缩放处理,缩放需要考虑原始照片大小;

6、算法已加入左右镜像处理;

7、取点需求json: needed,用于告知算法需要取哪些点,以及每个点的偏移值,最终限定值;

8、算法入口【change()】;

在线预览:http://sandbox.runjs.cn/show/zil65cnt

	<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
		<title>阿里云人脸关键点转换 JS</title>
		<style>
			body{
				margin: 0;
				padding: 0;
			}
		</style>
	<script id="jquery_183" type="text/javascript" class="library" src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js"></script>
	</head>
	<body>
		<a href="https://data.aliyun.com/ai?spm=a2c0j.8207365.813079.898989114.270a249dxoJxNH#/face-attribute" target=_blank>拿数据</a>
		
		阿里云response数据原文(在线接口直接返回)
		<textarea class=ali>
{"isError":false,"code":null,"message":null,"data":"{\"face_num\":1,\"face_rect\":[450,56,271,375],\"face_prob\":[1.0],\"pose\":[-1.9420808553695679,-7.966123104095459,1.3440889120101929],\"landmark_num\":105,\"landmark\":[481.1868591308594,192.1466064453125,557.916015625,184.88897705078125,515.7514038085938,164.93067932128906,519.3195190429688,186.20449829101562,487.95086669921875,177.77584838867188,500.17034912109375,167.70346069335938,531.318603515625,167.98121643066406,545.6124267578125,174.84439086914062,493.78619384765625,189.28128051757812,506.4016418457031,186.49017333984375,532.0901489257812,184.25411987304688,544.9972534179688,184.64761352539062,601.1273193359375,182.71737670898438,681.369384765625,189.6868438720703,643.9542236328125,165.242919921875,641.6524658203125,183.63316345214844,613.3355102539062,172.57098388671875,628.205078125,167.07232666015625,659.5584716796875,167.95635986328125,673.0067749023438,176.26197814941406,614.6646728515625,182.5886688232422,628.1947021484375,182.16087341308594,655.1759033203125,183.11215209960938,668.4251708984375,185.73199462890625,490.6137390136719,203.59783935546875,543.968994140625,210.25094604492188,496.1848449707031,197.87091064453125,502.8193664550781,193.4248504638672,510.55987548828125,191.47409057617188,518.5280151367188,192.0426025390625,526.1112060546875,194.55477905273438,532.8075561523438,198.91189575195312,538.9132690429688,204.0650634765625,494.9947814941406,209.47373962402344,500.97137451171875,213.68734741210938,508.0364074707031,215.6209716796875,515.356201171875,216.03746032714844,522.67333984375,215.56280517578125,529.9097900390625,214.37318420410156,537.0371704101562,212.64659118652344,615.8743286132812,209.5872039794922,667.3082275390625,205.06640625,620.6119384765625,203.54147338867188,626.4539794921875,198.5570831298828,633.1123046875,194.7288818359375,640.5873413085938,192.96173095703125,648.2689819335938,193.08145141601562,655.6587524414062,195.17105102539062,661.986328125,199.52569580078125,622.0869140625,213.25021362304688,628.7507934570312,216.0059814453125,635.7415771484375,217.77328491210938,642.9403076171875,218.18280029296875,650.0884399414062,217.2373504638672,656.8668823242188,214.77439880371094,662.822265625,210.7135467529297,579.8157958984375,210.10809326171875,577.001708984375,289.9973449707031,578.4644775390625,250.12181091308594,577.8956909179688,305.40789794921875,540.810791015625,300.5191345214844,616.716552734375,300.369384765625,534.0982055664062,353.22412109375,620.18017578125,350.78228759765625,540.2473754882812,353.40386962890625,612.8482055664062,351.4158630371094,578.075439453125,337.22332763671875,566.9115600585938,333.2672119140625,588.9468383789062,333.1346130371094,549.390625,341.5438232421875,605.021728515625,341.166015625,541.086669921875,346.5450134277344,558.0044555664062,337.0943908691406,597.0601196289062,336.998291015625,612.8035278320312,345.6592712402344,575.8104248046875,384.5810852050781,549.895751953125,376.0168762207031,602.3419189453125,373.8505554199219,541.2920532226562,365.1113586425781,562.0418090820312,382.7151794433594,590.087646484375,381.6968994140625,611.7411499023438,362.6891784667969,577.6726684570312,350.2848205566406,576.2798461914062,359.9858703613281,558.7822875976562,350.11572265625,557.8558959960938,358.9555969238281,595.293701171875,349.94683837890625,595.0768432617188,357.9466247558594,549.3785400390625,350.9784851074219,548.9730224609375,356.43756103515625,568.2252197265625,350.21844482421875,567.0416259765625,359.93084716796875,586.4886474609375,350.3289489746094,585.7337036132812,359.4627685546875,604.104248046875,350.27777099609375,604.0457153320312,354.90771484375,444.1617431640625,190.41688537597656,728.8128662109375,194.3751678466797,569.876708984375,447.9565734863281,462.74652099609375,333.20294189453125,696.1551513671875,341.9966735839844,449.1292419433594,261.6750793457031,718.1129150390625,268.23980712890625,504.6239318847656,404.2813720703125,642.7210693359375,412.2025146484375],\"iris\":[515.0765991210938,202.7382049560547,10.447031021118164,640.6373291015625,203.28053283691406,10.447031021118164],\"gender\":[0],\"age\":[31],\"expression\":[0],\"glass\":[0],\"dense_fea_len\":1024,\"dense_fea\":[-0.01401805691421032,-0.017203062772750854,-7.957577472552657E-4,0.012726863846182823,-0.007119269110262394,0.02113637700676918,0.005964828655123711,-0.034708958119153976,0.021655302494764328,0.025120113044977188,0.043826255947351456,-0.04036707431077957,0.0215604230761528,-0.003984039183706045,-0.0073219770565629005,0.05235069617629051,0.0016305523458868265,0.0028063468635082245,-0.043439991772174835,0.03781977668404579,0.051895078271627426,0.02455431967973709,0.02579818107187748,0.025050530210137367,-0.0051971725188195705,-0.01901315525174141,-0.005046364851295948,-0.011171085759997368,0.038413017988204956,0.0013674289220944047,0.03967113047838211,-0.01590631529688835,-0.04209782928228378,0.02255888283252716,-0.015743426978588104,-0.010687530040740967,-0.013363569043576717,-0.025090951472520828,-0.06443899124860764,0.0272113848477602,-0.009184048511087894,-0.023485392332077026,-0.0586085170507431,-0.03035588189959526,0.025806590914726257,0.023220064118504524,-0.016137050464749336,0.03676380217075348,0.010896123945713043,-0.08534088730812073,0.03413888439536095,-0.011030370369553566,-0.0011271520052105188,-0.020731858909130096,0.01802992634475231,-0.04014616832137108,-0.06964932382106781,-0.0055540623143315315,0.02366257831454277,-0.017674975097179413,-0.03639577701687813,0.012926414608955383,0.023930249735713005,0.007416262291371822,-0.03617693856358528,-0.012536519207060337,-0.040412332862615585,0.027912462130188942,0.04425647109746933,-0.032993920147418976,0.0030473482329398394,-0.014824047684669495,-0.004681183956563473,-0.022907283157110214,0.06296312063932419,-0.07118190079927444,0.021024737507104874,0.04900827631354332,0.02766522765159607,0.048375241458415985,-0.0011751629645004869,-0.009451993741095066,0.03670457378029823,-0.015310493297874928,0.004641416948288679,0.011193165555596352,-0.05501799285411835,0.03305460885167122,-0.03941177949309349,0.05263447016477585,-0.05735649913549423,0.017962176352739334,-0.016709189862012863,-0.02485482580959797,0.03657970950007439,-0.019360419362783432,-0.020373709499835968,0.04300708696246147,-0.005768365692347288,0.05670374631881714,-0.04040386527776718,-0.03411980718374252,0.0012216906761750579,0.012069428339600563,-0.018391665071249008,-0.030125586315989494,0.015282885171473026,-0.020396221429109573,-0.050541456788778305,-0.0010071302531287074,0.0425250306725502,-0.02301362156867981,0.00704774959012866,0.0015321760438382626,0.00676316861063242,-0.006219517905265093,-0.051916640251874924,0.01136000920087099,-0.061342816799879074,-0.03534777835011482,0.004842784721404314,-0.033025793731212616,7.822166080586612E-4,0.03470982611179352,0.03660321608185768,0.020710328593850136,-0.010214477777481079,-0.021972576156258583,-0.0067683556117117405,0.028848852962255478,-0.003050593426451087,-0.054717909544706345,0.0033505798783153296,-0.009558168239891529,0.029956726357340813,-0.0052662999369204044,-0.003283966798335314,-0.008591708727180958,-0.0390196293592453,0.03614693135023117,-0.03740816190838814,-0.0013875490985810757,0.03161029890179634,0.05064460262656212,-0.021697159856557846,-0.038362011313438416,-0.07412531971931458,0.006011915393173695,-0.021427316591143608,0.024750301614403725,0.03817533701658249,0.011429144069552422,-0.06652877479791641,-0.03586849942803383,-0.014725655317306519,0.07630796730518341,-0.020728034898638725,0.005777818150818348,6.514323758892715E-4,0.025377526879310608,0.002648130990564823,-0.0361742228269577,0.027010004967451096,-0.031835898756980896,0.03827636316418648,0.005835112649947405,-0.007412273436784744,-0.08857211470603943,-0.017527105286717415,-0.004430199973285198,-0.00150130910333246,0.012727408669888973,-0.0405719093978405,0.030588218942284584,-0.02050042897462845,-0.016793690621852875,0.04335770010948181,0.0203888937830925,-0.003336430061608553,-0.008282295428216457,-0.012415946461260319,0.04859181493520737,-0.03298910707235336,0.0069328797981143,0.0018679789500311017,0.023331232368946075,0.004661998245865107,0.02745291218161583,0.0021519786678254604,-0.013166256248950958,-0.0014927280135452747,-0.02048245258629322,-0.032490119338035583,0.013793409802019596,0.03455616906285286,0.04881919175386429,-0.016785908490419388,0.026733171194791794,0.002458967035636306,-0.00827440433204174,-0.0021076241973787546,0.009561496786773205,0.008564821444451809,-0.0372353121638298,-0.034367844462394714,0.02806953527033329,0.04930374026298523,0.004385946784168482,-0.05870708078145981,0.0690271183848381,0.017142243683338165,-0.01051105372607708,0.04751709848642349,0.03755219280719757,0.01943477988243103,-0.005341582931578159,-0.013991906307637691,-0.02425789088010788,-0.015443404205143452,-0.02877434529364109,-0.007222091779112816,-0.020882071927189827,0.01426660642027855,-0.01260056160390377,0.022729238495230675,0.012709551490843296,0.006672210060060024,5.562013830058277E-4,-0.06116042286157608,0.021440686658024788,0.03876786679029465,-0.060329314321279526,-0.03548993542790413,-0.06445642560720444,-0.014155490323901176,0.05075512453913689,-0.002322668209671974,0.004838031250983477,-0.009320552460849285,0.020142467692494392,0.010335099883377552,0.06461784988641739,-0.0202972199767828,-0.024039940908551216,-0.048543479293584824,-0.007366215344518423,-0.023575443774461746,-0.025637507438659668,0.003651759121567011,0.025948019698262215,-0.07073027640581131,0.018610481172800064,-0.004323582164943218,-0.016408320516347885,-0.04237687587738037,-0.02804127149283886,0.003534691408276558,-0.00935234036296606,-3.0810091993771493E-4,-0.05001299828290939,-0.038333892822265625,-0.01701545901596546,0.007838360033929348,-0.01879679411649704,0.00773585494607687,-0.015544823370873928,0.018406011164188385,0.03328170254826546,0.07987517863512039,-0.013560104183852673,-0.027034852653741837,0.03611688315868378,-0.028233030810952187,0.03364842012524605,0.030058279633522034,0.005194709170609713,0.0020364790689200163,0.02134750224649906,0.01258237287402153,0.03695572167634964,0.02706952393054962,-0.04059915989637375,-0.01880979724228382,0.0039925421588122845,0.013780255801975727,-0.013729437254369259,-0.011035406030714512,0.03037373162806034,0.008227590471506119,-0.0373525433242321,-0.017668716609477997,-0.02854606695473194,-0.025771144777536392,-0.03129180893301964,-0.00865208264440298,0.017441926524043083,0.022148901596665382,-0.02717951312661171,-0.04453064128756523,0.043860793113708496,0.03463566675782204,-0.011513355188071728,-0.05755394324660301,-0.00991507526487112,-0.008177762851119041,0.016276482492685318,0.014659912325441837,0.021056972444057465,-0.02754669077694416,0.01732640527188778,-0.031497590243816376,-0.023633701726794243,0.0192278940230608,-0.05063691362738609,0.04478595033288002,-0.021978357806801796,-0.046555254608392715,0.05465145409107208,0.027402589097619057,0.003463718807324767,0.021707821637392044,0.026044277474284172,0.06081462651491165,-0.028189538046717644,-0.008387320674955845,0.011871451511979103,0.008339823223650455,0.0088301170617342,-0.008257158100605011,-0.0068739308044314384,-0.00686597777530551,-0.004752041306346655,0.005600419826805592,-0.04822906479239464,-0.05494774132966995,0.015585764311254025,0.026926398277282715,0.0023112217895686626,-0.02463115006685257,0.018618978559970856,-0.029648499563336372,-0.023223061114549637,-0.06013365089893341,-0.02303316444158554,-0.020537836477160454,0.006812230683863163,-0.02470114827156067,-0.09647281467914581,-0.003994546830654144,-0.06126412749290466,4.081216175109148E-4,0.003648687619715929,-0.02511459030210972,-0.01746385172009468,0.02481815405189991,-0.02730088122189045,0.017433786764740944,0.02787737362086773,-0.010324467904865742,-0.011520247906446457,0.016603022813796997,0.03731928765773773,-0.03152092918753624,0.035176053643226624,-0.00650137709453702,0.019487174227833748,-0.006896344944834709,-0.05922923982143402,0.06645329296588898,-0.017785103991627693,0.0032423879019916058,-0.04417795687913895,0.0372517928481102,0.00798876490443945,-0.0797746330499649,-0.03172328323125839,-0.017914051190018654,0.012016305699944496,-0.012695781886577606,0.01409083791077137,-0.01729627512395382,-0.004318781662732363,0.03333701565861702,-0.008493373170495033,0.004933178424835205,-0.014727816917002201,0.019369645044207573,-0.02528100460767746,0.016363758593797684,-0.07029261440038681,-0.015514938160777092,0.0016681782435625792,0.041506584733724594,0.017129428684711456,-0.08477873355150223,-0.003856995142996311,0.0845194011926651,-0.04246656596660614,-0.006706486456096172,0.025514014065265656,-0.019525550305843353,0.07965109497308731,-0.04252957925200462,0.014310476370155811,0.002429988468065858,-0.048264019191265106,0.03537949547171593,0.003387831151485443,-0.05195106938481331,-0.03971003368496895,0.04930631443858147,0.021143555641174316,-0.01140297669917345,0.04447716474533081,0.0152156176045537,0.013945389539003372,-0.014799795113503933,0.017787598073482513,-0.0017960164695978165,-0.011557645164430141,0.03158339485526085,-0.030842846259474754,0.022838817909359932,-0.0017554846126586199,-6.16088043898344E-4,-0.005157961510121822,-0.03913358971476555,-0.09400462359189987,-0.015084216371178627,-0.010771826840937138,0.010608479380607605,-0.011550312861800194,0.008922116830945015,-0.00890389271080494,0.05730540677905083,0.030903317034244537,0.010864770039916039,-0.024614432826638222,-0.001375392428599298,-0.00264772423543036,-0.012701389379799366,-0.019552160054445267,0.004531575366854668,0.014109359122812748,-0.06534732133150101,-0.007262237370014191,-0.013760373927652836,0.03820478916168213,0.03774876520037651,0.028843382373452187,0.041455622762441635,0.05079611390829086,0.07893752306699753,-0.031919367611408234,0.03789302334189415,0.019053298979997635,0.013323592022061348,-0.035919107496738434,0.07609635591506958,0.029064800590276718,-0.0153002655133605,-0.039991047233343124,-0.021667955443263054,-0.03625810146331787,7.242286810651422E-4,0.02795669063925743,0.034656114876270294,-0.01938585937023163,-0.0486120842397213,0.001193532720208168,0.03473642095923424,0.057959504425525665,7.057937909848988E-4,-7.279129349626601E-4,-0.008027862757444382,-0.015222621150314808,0.006249149329960346,0.026595432311296463,-0.033697858452796936,0.018619397655129433,0.04090692102909088,0.03208516538143158,0.05270923674106598,0.03406498581171036,0.0013010230613872409,0.03218751400709152,0.014282962307333946,-0.0062924958765506744,-6.069695809856057E-4,-0.05225706100463867,-0.029509933665394783,0.008925126865506172,-0.012471627444028854,0.040854379534721375,-0.028307361528277397,0.0012690695002675056,0.038319725543260574,-0.01768462546169758,0.031221261247992516,-0.025224821642041206,0.01749645732343197,-0.0025368512142449617,-0.013737342320382595,0.04240081086754799,-0.016286129131913185,0.00872004684060812,0.011233103461563587,-0.002518711145967245,-0.012270917184650898,0.006320679560303688,0.04704119265079498,-0.017620785161852837,0.0312054380774498,0.034012824296951294,0.012872224673628807,0.017184097319841385,0.016342738643288612,-0.0385156124830246,0.053991734981536865,0.00633900985121727,0.07887297868728638,-0.021475747227668762,0.012675190344452858,0.019061671569943428,0.021331772208213806,-0.002887994283810258,-0.028707008808851242,0.059488631784915924,0.0036185216158628464,-0.035589251667261124,-0.07919871807098389,0.003035804023966193,-0.0075208754278719425,0.014369321055710316,0.03384464234113693,0.0024118172004818916,-0.01363921444863081,0.02044629491865635,-0.034420665353536606,-0.04188105836510658,-0.005954429041594267,-0.012319555506110191,0.04744291305541992,0.021050062030553818,-0.022438950836658478,0.005160487722605467,0.03080885484814644,-0.007890020497143269,0.010762444697320461,0.02795417048037052,-0.02756553515791893,-0.01134087797254324,0.04677892103791237,0.006705101579427719,3.238361969124526E-4,0.008415883406996727,-0.022694135084748268,0.016833551228046417,-0.0341443233191967,-0.019744595512747765,-0.036648306995630264,-0.019660022109746933,0.03701545298099518,-0.049298495054244995,-0.03955181688070297,0.036449410021305084,0.009406686760485172,-0.042351674288511276,-0.03361723944544792,-0.048733387142419815,-0.02334366738796234,-0.045696016401052475,0.0038594543002545834,0.022869758307933807,-0.003500793594866991,-0.00256786635145545,-0.047830305993556976,-0.0011532007483765483,-0.009506028145551682,-0.029058504849672318,0.06454531103372574,-0.03734586760401726,0.008284498006105423,-0.016916129738092422,-0.03688321262598038,-0.005771100986748934,0.042007915675640106,0.004010035190731287,0.004798640962690115,0.010778592899441719,0.061143048107624054,0.007008363027125597,-0.03381931036710739,0.026561912149190903,-0.046506233513355255,0.01104985736310482,0.02165120840072632,0.01862954907119274,-0.001913836575113237,0.06045923009514809,-0.008003457449376583,-0.0013972367160022259,-0.012568519450724125,-0.04099131003022194,-0.009877033531665802,0.004113737028092146,0.016556957736611366,-0.021255476400256157,0.005851224530488253,0.025873254984617233,-0.03386204317212105,0.03830314055085182,-0.023132776841521263,-0.020665954798460007,0.05816645547747612,-0.0033276292961090803,-0.03841133415699005,0.06955024600028992,0.05621708929538727,-0.02107655256986618,0.026694586500525475,-0.027951180934906006,0.009165504947304726,-0.03743504732847214,0.036831073462963104,-1.5929249639157206E-4,0.055031806230545044,0.051345083862543106,-0.023582737892866135,-0.0010945710819214582,-0.026126407086849213,-0.03452946990728378,-0.02710028924047947,-0.0471620038151741,-0.016028355807065964,-0.008307543583214283,0.039584554731845856,0.03225323185324669,0.007635952439159155,-0.04917925223708153,-0.02740931138396263,0.023243321105837822,-0.01965949684381485,-0.030273186042904854,0.014622095972299576,0.018801135942339897,0.018416566774249077,-0.02161368541419506,-0.010089353658258915,-0.0654168650507927,0.028903093189001083,0.014801000244915485,0.004001184366643429,-0.01327931322157383,-0.0119699165225029,0.023082135245203972,-0.0609738864004612,-0.04548211768269539,-0.025333087891340256,6.0121068963781E-4,-0.016909321770071983,0.004159931093454361,0.014930592849850655,-0.051673829555511475,-0.03165125101804733,-0.04277712479233742,0.0044927154667675495,0.08736085891723633,-0.029407018795609474,-0.023769669234752655,0.036837007850408554,-0.02237776853144169,-0.04118344560265541,-0.01135208923369646,0.037046872079372406,-0.02354460395872593,0.04886477440595627,0.055843666195869446,-0.0014975540107116103,-0.0018878587288782,-0.05982199311256409,0.019126489758491516,-0.034683968871831894,0.05173186957836151,-0.023525450378656387,0.06915730237960815,-0.05888998135924339,-0.03633876517415047,-0.0031948185060173273,0.05962774530053139,-0.009707818739116192,-0.002241617999970913,0.012734910473227501,0.012798561714589596,-0.03864741697907448,8.126792963594198E-4,0.002605314599350095,0.030314473435282707,0.03596128150820732,-0.0021815516520291567,-0.03255274146795273,-0.030451700091362,-0.031323835253715515,0.01232261024415493,-0.009385943412780762,-0.0030564148910343647,0.04041067883372307,0.001412052195519209,-0.02584119513630867,-0.0143973920494318,-0.02999815158545971,0.04870902746915817,-0.02515190839767456,0.013007759116590023,-0.011110099963843822,-0.011872460134327412,-0.02310490980744362,0.002409848850220442,0.00833000335842371,0.008395790122449398,-0.030051812529563904,0.09393776953220367,4.2805474367924035E-4,-0.05428213253617287,0.034171294420957565,0.011194600723683834,-0.022449888288974762,-0.018207361921668053,-0.03777764365077019,0.012521683238446712,0.0046284254640340805,0.04235541820526123,-0.018684184178709984,0.034917257726192474,-0.012290938757359982,-0.002411919878795743,-0.0225639920681715,-0.022353297099471092,0.019299646839499474,-0.021819768473505974,-0.03733634203672409,-0.011111127212643623,0.018512293696403503,-0.06496669352054596,-0.005102306138724089,-0.033631421625614166,-0.017103422433137894,0.026667343452572823,-0.019675323739647865,0.046013329178094864,-0.01879923604428768,-0.007622929755598307,-0.005467132665216923,0.04533319175243378,-0.019836433231830597,-0.009769587777554989,-0.011541184037923813,0.06426627933979034,0.031057626008987427,-0.05462569743394852,0.05937952175736427,-0.011268442496657372,-0.03293483331799507,0.033397067338228226,-0.029611140489578247,-0.06796371191740036,-0.04929506778717041,-0.0077824280597269535,-0.009150746278464794,-0.021767403930425644,0.015177758410573006,0.0015204158844426274,-0.023393772542476654,-0.022650543600320816,-0.008970842696726322,-0.01071050763130188,0.006424563005566597,0.029187781736254692,0.04299163818359375,0.09080799669027328,-0.023558584973216057,0.019764775410294533,-0.01666906848549843,-0.0055489311926066875,-0.03609199449419975,0.014167653396725655,0.056132469326257706,-0.07703251391649246,0.0238456130027771,-0.0037239049561321735,-0.010226734913885593,0.04621848091483116,0.018769044429063797,-0.02581772208213806,-0.013857771642506123,0.016010507941246033,-0.016213281080126762,-0.025506479665637016,0.021152734756469727,0.021359216421842575,0.018325986340641975,0.00753508135676384,0.004311076831072569,5.165752954781055E-4,-0.009524201042950153,-0.008756063878536224,-0.008592539466917515,0.014200510457158089,0.035124361515045166,-0.030992314219474792,-0.029084952548146248,0.03236754983663559,0.0327618345618248,0.0047682831063866615,-0.0573093518614769,0.018693167716264725,0.007487590424716473,0.035930510610342026,0.029198048636317253,0.05050264671444893,-0.004893909674137831,0.02625337429344654,0.06289359927177429,0.011153426952660084,0.011976640671491623,-0.004601768217980862,0.00233141565695405,-0.024746112525463104,-0.009200404398143291,-0.010964912362396717,0.018028367310762405,0.006200514268130064,0.024807102978229523,0.02389361895620823,0.014938014559447765,0.01441176701337099,-7.088512065820396E-4,-8.690315298736095E-4,0.05038585513830185,-0.012865515425801277,-0.02474810555577278,-0.024400360882282257,0.043007656931877136,0.0133002158254385,0.004242334980517626,-0.04318061098456383,-8.383523090742528E-4,0.009293117560446262,0.005801681894809008,0.04039960354566574,-0.003635962028056383,-0.018471723422408104,-0.030293837189674377,0.014058530330657959,-0.04308927059173584,-0.02434079721570015,-0.0021577009465545416,-0.02936679683625698,-0.012236875481903553,-0.07973282039165497,0.00943138636648655,0.0036342034582048655,-0.009331257082521915,0.005510652903467417,0.02797200344502926,-0.002086916472762823,0.04573562368750572,0.01872846484184265,0.04322927072644234,0.0343872532248497,-0.012932505458593369,0.007243401370942593,-0.009319107979536057,0.03026353009045124,0.02481073886156082,0.0444304458796978,0.04295724257826805,0.002337438054382801,0.02114643156528473,-0.01798706315457821,0.006134890019893646,-0.00877105537801981,0.0555926188826561,-0.02274232916533947,-0.012846678495407104,-0.020760346204042435,-0.004403478465974331,-0.024998795241117477,0.02165985107421875,0.024236135184764862,-0.0036604066845029593,0.0044058882631361485,0.02856266312301159,-0.001980226021260023,-0.033892787992954254,-0.04817665368318558,-0.062334202229976654,-0.02264823019504547,-0.03099820949137211,-0.003265051171183586,0.008178827352821827,-0.0692322850227356,0.007894794456660748,-0.021454986184835434,0.012562914751470089,0.001439871033653617,-0.03418891504406929,0.01634870655834675,0.029765117913484573,-0.024829044938087463,0.015531396493315697,0.04415610060095787,-0.022130146622657776,0.0013588855508714914,-0.02066628262400627,0.024653896689414978,0.007568742614239454,0.0030455170199275017,0.031492676585912704,-0.08627568185329437,-0.05004902184009552,-0.025554530322551727,0.06331039220094681,-0.01711191236972809,-0.011831460520625114,0.027104945853352547,0.008851610124111176,-0.021952908486127853,-0.02357175201177597,0.03602826967835426,0.04190012812614441,-0.01592879556119442,-0.05144048482179642,-0.06067992001771927,-0.021227138116955757,0.04288467392325401,-0.03863159194588661,-0.02356000244617462,-0.023352427408099174,-0.06673593819141388,-0.010007981210947037,0.055265873670578,0.05047699064016342,-1.979678199859336E-4,9.949036175385118E-4,6.658232305198908E-4,-0.013803934678435326,-0.04256494343280792,0.02681785076856613,-0.004666262771934271,-0.01837810128927231,-0.014631545171141624,-0.010532339103519917,-0.017687849700450897,-0.002256568055599928,0.04968293756246567,-0.055096689611673355,-0.030366230756044388,0.003925838973373175,0.007288928143680096,0.03311709314584732,-0.004416213370859623,0.0071632033213973045,0.07520366460084915,0.014326190575957298,0.002428042469546199,0.02246483415365219,-0.008838038891553879,-1.212194183608517E-4,-0.030439775437116623,0.00977406371384859,0.0012831244384869933,-0.014953305013477802,0.01372381392866373,-0.028012733906507492,-0.012741850689053535,-0.02646835707128048,-0.011177859269082546,-0.05135062336921692,-0.010867957957088947,-0.017891226336359978,-0.041451290249824524,-0.008999551646411419,0.04238526523113251,-0.016873734071850777,0.001143655739724636,0.015803761780261993,-0.02664126828312874,0.050672128796577454,-0.012319298461079597,0.03820456936955452,0.0803207978606224,0.031303975731134415,0.02924254722893238,-0.0092654163017869,0.054991524666547775,0.0022399192675948143,0.04403874650597572,-0.03530541807413101,0.0427730493247509,-0.028579672798514366,-0.008782790042459965,-0.03349442034959793,0.0034572677686810493,-0.02285861410200596,0.029523855075240135,0.012142831459641457,0.04190356284379959,0.049507025629282,-0.05482562258839607,-0.013410650193691254,-0.014202662743628025,0.0752951130270958,0.021264033392071724,-0.050569087266922,0.029985738918185234,-0.045563966035842896,0.039315689355134964,0.011179691180586815,0.006178052630275488,0.04663022235035896,0.04581007733941078,0.012961503118276596,-0.0369512103497982],\"errno\":0,\"request_id\":\"eaf0693d-233e-470e-a628-6c130161ba98\"}"}
</textarea>
		
		<input type=button value="抽人脸关键点数据>>"	onclick="cd()">
		
		<textarea class=alilandmark></textarea>
		
<input type=button value="复制到下面↓" onclick="$('#points').val($('.alilandmark').val())">

	<br/>
		
		人脸关键点数据
		<textarea onmouseover="$(this).select();"  id=points style="margin: 0px; width: 713px; height: 55px;">1084.99462890625,
        1354.880615234375,
        1104.200439453125,
        1045.158935546875,
        1031.265380859375,
        1193.37939453125,
        1084.710205078125,
        1199.5087890625,
        1048.9798583984375,
        1308.6314697265625,
        1034.365966796875,
        1251.886962890625,
        1039.62353515625,
        1135.426513671875,
        1056.9217529296875,
        1079.455078125,
        1083.0029296875,
        1303.04638671875,
        1080.809326171875,
        1251.220458984375,
        1091.1669921875,
        1148.042724609375,
        1099.08056640625,
        1096.77783203125,
        1092.5479736328125,
        881.111083984375,
        1099.6417236328125,
        586.5106201171875,
        1039.424560546875,
        729.7749633789062,
        1093.6552734375,
        733.53955078125,
        1060.5299072265625,
        836.8171997070312,
        1045.702392578125,
        784.1394653320312,
        1041.6053466796875,
        675.287353515625,
        1059.7904052734375,
        624.0926513671875,
        1096.2830810546875,
        832.0042114257812,
        1094.5673828125,
        782.78125,
        1090.03759765625,
        684.4282836914062,
        1092.4532470703125,
        635.236328125,
        1185.19482421875,
        1262.405029296875,
        1187.070068359375,
        1096.028076171875,
        1172.1385498046875,
        1243.476806640625,
        1162.9024658203125,
        1222.424560546875,
        1157.431640625,
        1200.09228515625,
        1154.6666259765625,
        1177.265625,
        1154.454345703125,
        1154.283447265625,
        1159.246826171875,
        1131.814697265625,
        1170.1468505859375,
        1111.59619140625,
        1193.7633056640625,
        1242.817138671875,
        1198.1964111328125,
        1221.907958984375,
        1201.282470703125,
        1200.753173828125,
        1203.2742919921875,
        1179.4671630859375,
        1202.04833984375,
        1158.130859375,
        1199.0465087890625,
        1136.965576171875,
        1194.47314453125,
        1116.082275390625,
        1186.111083984375,
        853.8560791015625,
        1180.5892333984375,
        686.2123413085938,
        1168.73779296875,
        838.6371459960938,
        1158.00390625,
        818.2498168945312,
        1152.6287841796875,
        795.825927734375,
        1152.783447265625,
        772.76123046875,
        1154.912353515625,
        749.7661743164062,
        1159.95263671875,
        727.2352294921875,
        1168.066162109375,
        705.6156616210938,
        1192.941650390625,
        833.41552734375,
        1196.99560546875,
        812.2477416992188,
        1199.974853515625,
        790.9029541015625,
        1200.5101318359375,
        769.3594360351562,
        1197.9647216796875,
        747.9578247070312,
        1194.548583984375,
        726.67822265625,
        1189.9317626953125,
        705.6345825195312,
        1186.32666015625,
        976.9662475585938,
        1385.593994140625,
        973.2914428710938,
        1283.9205322265625,
        974.97509765625,
        1456.5457763671875,
        973.3594360351562,
        1458.63623046875,
        1085.651123046875,
        1452.347412109375,
        861.9727783203125,
        1644.0263671875,
        1113.73291015625,
        1638.545654296875,
        822.4629516601562,
        1634.6864013671875,
        1080.7930908203125,
        1630.7159423828125,
        849.5337524414062,
        1578.258544921875,
        966.1693115234375,
        1561.521728515625,
        1009.3319091796875,
        1561.0845947265625,
        925.2423095703125,
        1600.215087890625,
        1063.4013671875,
        1596.986083984375,
        872.0494995117188,
        1621.09375,
        1089.4583740234375,
        1578.306396484375,
        1038.200439453125,
        1575.45556640625,
        896.2108764648438,
        1616.5152587890625,
        846.2119750976562,
        1688.1595458984375,
        962.3963623046875,
        1676.8544921875,
        1040.822021484375,
        1676.00439453125,
        888.1592407226562,
        1661.2568359375,
        1077.6455078125,
        1687.7801513671875,
        1002.3607788085938,
        1687.066650390625,
        924.4173583984375,
        1660.3011474609375,
        853.5768432617188,
        1609.8272705078125,
        965.0790405273438,
        1613.5703125,
        966.6117553710938,
        1613.4300537109375,
        1024.739990234375,
        1616.2889404296875,
        1025.10107421875,
        1610.045166015625,
        905.4833374023438,
        1615.551513671875,
        907.1573486328125,
        1623.548095703125,
        1052.959228515625,
        1625.4970703125,
        1052.9439697265625,
        1609.42724609375,
        995.05615234375,
        1613.4564208984375,
        995.9375610351562,
        1608.279296875,
        935.2477416992188,
        1612.588134765625,
        936.81396484375,
        1618.8558349609375,
        876.9531860351562,
        1622.0596923828125,
        878.0634155273438,
        1217.625,
        1436.25634765625,
        1213.2484130859375,
        528.0890502929688,
        1913.9566650390625,
        967.7245483398438,
        1659.049072265625,
        1357.126220703125,
        1651.8187255859375,
        594.144775390625,
        1440.541259765625,
        1411.769775390625,
        1433.1868896484375,
        546.1998291015625,
        1840.6500244140625,
        1194.290771484375,
        1837.17626953125,
        748.7349243164062
		</textarea>
		<input type=checkbox class=ys checked>打印原始点 <input type=checkbox class=dydx checked>打印点序 <br>
		
		红绿坐标系相对屏幕左上角X <input value=500 class=zerox /><br>
		红绿坐标系相对屏幕左上角Y <input value=650 class=zeroy /><br>
		位移抓点原始X <input value=973.35 class=zx /> <input type=checkbox class=zd checked>自动识别<input class=dian value=60>号点<br>
		位移抓点原始Y <input value=1456.54 class=zy /><br>
		缩放乘积比 <input value=0.0172 class=multi /><br>
		
		最终点计算基准数据<textarea onmouseover="$(this).select();"  id=needed>{"1":{"x":-5.017,"y":6.009,"name":"a1","min_x":-0.035,"min_y":999,"max_x":-0.035,"max_y":999,"mirror":14},
"2":{"x":-1.138,"y":5.769,"name":"a2","min_x":0.39,"min_y":999,"max_x":0.39,"max_y":999,"mirror":13},
"3":{"x":-3.058,"y":6.181,"name":"a3","min_x":-0.133,"min_y":999,"max_x":-0.133,"max_y":999,"mirror":15},
"4":{"x":-3.058,"y":6.181,"name":"a4","min_x":-0.135,"min_y":999,"max_x":-0.135,"max_y":999,"mirror":16},
"5":{"x":-5.017,"y":6.009,"name":"a5","min_x":0.318,"min_y":999,"max_x":0.318,"max_y":999,"mirror":20},
"6":{"x":-3.058,"y":6.181,"name":"a6","min_x":-0.95,"min_y":999,"max_x":-0.95,"max_y":999,"mirror":19},
"7":{"x":-3.058,"y":6.181,"name":"a7","min_x":0.785,"min_y":999,"max_x":0.785,"max_y":999,"mirror":18},
"8":{"x":-1.138,"y":5.769,"name":"a8","min_x":-0.204,"min_y":999,"max_x":-0.204,"max_y":999,"mirror":17},
"9":{"x":-5.017,"y":6.009,"name":"a9","min_x":0.551,"min_y":999,"max_x":0.551,"max_y":999,"mirror":24},
"10":{"x":-3.058,"y":6.181,"name":"a10","min_x":-0.776,"min_y":999,"max_x":-0.776,"max_y":999,"mirror":23},
"11":{"x":-3.058,"y":6.181,"name":"a11","min_x":0.769,"min_y":999,"max_x":0.769,"max_y":999,"mirror":22},
"12":{"x":-1.138,"y":5.769,"name":"a12","min_x":-0.353,"min_y":999,"max_x":-0.353,"max_y":999,"mirror":21},
"13":{"x":1.138,"y":5.769,"name":"a13","min_x":-0.39,"min_y":999,"max_x":-0.39,"max_y":999,"mirror":null},
"14":{"x":5.017,"y":6.009,"name":"a14","min_x":0.035,"min_y":999,"max_x":0.035,"max_y":999,"mirror":null},
"15":{"x":3.058,"y":6.181,"name":"a15","min_x":0.133,"min_y":999,"max_x":0.133,"max_y":999,"mirror":null},
"16":{"x":3.058,"y":6.181,"name":"a16","min_x":0.135,"min_y":999,"max_x":0.135,"max_y":999,"mirror":null},
"17":{"x":1.138,"y":5.769,"name":"a17","min_x":0.204,"min_y":999,"max_x":0.204,"max_y":999,"mirror":null},
"18":{"x":3.058,"y":6.181,"name":"a18","min_x":-0.785,"min_y":999,"max_x":-0.785,"max_y":999,"mirror":null},
"19":{"x":3.058,"y":6.181,"name":"a19","min_x":0.95,"min_y":999,"max_x":0.95,"max_y":999,"mirror":null},
"20":{"x":5.017,"y":6.009,"name":"a20","min_x":-0.318,"min_y":999,"max_x":-0.318,"max_y":999,"mirror":null},
"21":{"x":1.138,"y":5.769,"name":"a21","min_x":0.353,"min_y":999,"max_x":0.353,"max_y":999,"mirror":null},
"22":{"x":3.058,"y":6.181,"name":"a22","min_x":-0.769,"min_y":999,"max_x":-0.769,"max_y":999,"mirror":null},
"23":{"x":3.058,"y":6.181,"name":"a23","min_x":0.776,"min_y":999,"max_x":0.776,"max_y":999,"mirror":null},
"24":{"x":5.017,"y":6.009,"name":"a24","min_x":-0.551,"min_y":999,"max_x":-0.551,"max_y":999,"mirror":null},
"25":{"x":-4.175,"y":4.222,"name":"a25","min_x":0.001,"min_y":-0.223,"max_x":0.001,"max_y":0.267,"mirror":42},
"26":{"x":-1.752,"y":3.96,"name":"a26","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":41},
"27":{"x":-3.627,"y":4.656,"name":"a27","min_x":-0.29,"min_y":-0.423,"max_x":-0.29,"max_y":0.077,"mirror":49},
"28":{"x":-3.627,"y":4.656,"name":"a28","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":48},
"29":{"x":-2.93,"y":4.776,"name":"a29","min_x":-0.349,"min_y":-0.281,"max_x":-0.349,"max_y":0.219,"mirror":47},
"30":{"x":-2.93,"y":4.776,"name":"a30","min_x":0.01,"min_y":-0.253,"max_x":0.01,"max_y":0.247,"mirror":46},
"31":{"x":-2.93,"y":4.776,"name":"a31","min_x":0.438,"min_y":-0.307,"max_x":0.438,"max_y":0.193,"mirror":45},
"32":{"x":-2.145,"y":4.573,"name":"a32","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":44},
"33":{"x":-2.145,"y":4.573,"name":"a33","min_x":0.19,"min_y":-0.481,"max_x":0.19,"max_y":0.019,"mirror":43},
"34":{"x":-3.784,"y":3.871,"name":"a34","min_x":-0.272,"min_y":-0.109,"max_x":-0.272,"max_y":0.391,"mirror":56},
"35":{"x":-3.784,"y":3.871,"name":"a35","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":55},
"36":{"x":-2.957,"y":3.711,"name":"a36","min_x":-0.448,"min_y":-0.184,"max_x":-0.448,"max_y":0.316,"mirror":54},
"37":{"x":-2.957,"y":3.711,"name":"a37","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":53},
"38":{"x":-2.957,"y":3.711,"name":"a38","min_x":0.382,"min_y":-0.225,"max_x":0.382,"max_y":0.275,"mirror":52},
"39":{"x":-2.275,"y":3.804,"name":"a39","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":51},
"40":{"x":-2.275,"y":3.804,"name":"a40","min_x":0.272,"min_y":-0.15,"max_x":0.272,"max_y":0.35,"mirror":50},
"41":{"x":1.752,"y":3.96,"name":"a41","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"42":{"x":4.174,"y":4.239,"name":"a42","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"43":{"x":2.145,"y":4.573,"name":"a43","min_x":-0.19,"min_y":-0.481,"max_x":-0.19,"max_y":0.019,"mirror":null},
"44":{"x":2.145,"y":4.573,"name":"a44","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"45":{"x":2.92,"y":4.773,"name":"a45","min_x":-0.427,"min_y":-0.304,"max_x":-0.427,"max_y":0.196,"mirror":null},
"46":{"x":2.92,"y":4.773,"name":"a46","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"47":{"x":2.92,"y":4.773,"name":"a47","min_x":0.359,"min_y":-0.278,"max_x":0.359,"max_y":0.222,"mirror":null},
"48":{"x":3.627,"y":4.656,"name":"a48","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"49":{"x":3.627,"y":4.656,"name":"a49","min_x":0.29,"min_y":-0.423,"max_x":0.29,"max_y":0.077,"mirror":null},
"50":{"x":2.275,"y":3.804,"name":"a50","min_x":-0.272,"min_y":-0.15,"max_x":-0.272,"max_y":0.35,"mirror":null},
"51":{"x":2.275,"y":3.804,"name":"a51","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"52":{"x":2.957,"y":3.711,"name":"a52","min_x":-0.382,"min_y":-0.225,"max_x":-0.382,"max_y":0.275,"mirror":null},
"53":{"x":2.957,"y":3.711,"name":"a53","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"54":{"x":2.957,"y":3.711,"name":"a54","min_x":0.448,"min_y":-0.184,"max_x":0.448,"max_y":0.316,"mirror":null},
"55":{"x":3.784,"y":3.871,"name":"a55","min_x":0,"min_y":-0.25,"max_x":0,"max_y":0.25,"mirror":null},
"56":{"x":3.784,"y":3.871,"name":"a56","min_x":0.272,"min_y":-0.109,"max_x":0.272,"max_y":0.391,"mirror":null},
"57":{"x":0,"y":0,"name":"a57","min_x":0,"min_y":4.094,"max_x":0,"max_y":4.094,"mirror":null},
"58":{"x":0,"y":1.579,"name":"a58","min_x":0,"min_y":-0.2,"max_x":0,"max_y":0.2,"mirror":null},
"59":{"x":0,"y":0,"name":"a59","min_x":0,"min_y":2.847,"max_x":0,"max_y":2.847,"mirror":null},
"60":{"x":0,"y":0.484,"name":"a60","min_x":0,"min_y":999,"max_x":0,"max_y":999,"mirror":null},
"61":{"x":-1.207,"y":1.194,"name":"a61","min_x":-0.1,"min_y":-0.1,"max_x":0.1,"max_y":0.1,"mirror":62},
"62":{"x":1.207,"y":1.194,"name":"a62","min_x":-0.1,"min_y":-0.1,"max_x":0.1,"max_y":0.1,"mirror":null},
"63":{"x":-1.788,"y":-1.002,"name":"a63","min_x":-0.2,"min_y":-0.15,"max_x":0.2,"max_y":0.15,"mirror":64},
"64":{"x":1.788,"y":-1.002,"name":"a64","min_x":-.2,"min_y":-0.15,"max_x":0.2,"max_y":0.15,"mirror":null},
"65":{"x":-0.945,"y":-1.632,"name":"a65","min_x":-0.523,"min_y":0.432,"max_x":-0.523,"max_y":0.732,"mirror":66},
"66":{"x":0.945,"y":-1.632,"name":"a66","min_x":0.523,"min_y":0.432,"max_x":0.523,"max_y":0.732,"mirror":null},
"67":{"x":0,"y":-0.485,"name":"a67","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":null},
"68":{"x":0,"y":-0.485,"name":"a68","min_x":-0.416,"min_y":-0.058,"max_x":-0.416,"max_y":0.242,"mirror":69},
"69":{"x":0,"y":-0.485,"name":"a69","min_x":0.416,"min_y":-0.058,"max_x":0.416,"max_y":0.242,"mirror":null},
"70":{"x":-1.076,"y":-0.722,"name":"a70","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":71},
"71":{"x":1.076,"y":-0.721,"name":"a71","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":null}, 
"72":{"x":-1.076,"y":-0.722,"name":"a72","min_x":-0.353,"min_y":-0.349,"max_x":-0.353,"max_y":-0.049,"mirror":75},
"73":{"x":-1.076,"y":-0.722,"name":"a73","min_x":0.317,"min_y":0.007,"max_x":0.317,"max_y":0.307,"mirror":74},
"74":{"x":1.076,"y":-0.721,"name":"a74","min_x":-0.317,"min_y":0.007,"max_x":-0.317,"max_y":0.307,"mirror":null},
"75":{"x":1.076,"y":-0.721,"name":"a75","min_x":0.353,"min_y":-0.349,"max_x":0.353,"max_y":-0.049,"mirror":null},
"76":{"x":0,"y":-1.632,"name":"a76","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":null},
"77":{"x":-0.945,"y":-1.632,"name":"a77","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":78},
"78":{"x":0.945,"y":-1.632,"name":"a78","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":null},
"79":{"x":-0.945,"y":-1.632,"name":"a79","min_x":-0.408,"min_y":0.103,"max_x":-0.408,"max_y":0.403,"mirror":82},
"80":{"x":0,"y":-1.758,"name":"a80","min_x":-0.51,"min_y":-0.148,"max_x":-0.51,"max_y":0.152,"mirror":81},
"81":{"x":0,"y":-1.758,"name":"a81","min_x":0.51,"min_y":-0.148,"max_x":0.51,"max_y":0.152,"mirror":null},
"82":{"x":0.945,"y":-1.758,"name":"a82","min_x":0.408,"min_y":0.103,"max_x":0.408,"max_y":0.403,"mirror":null},
"83":{"x":0,"y":-0.987,"name":"a83","min_x":0,"min_y":-0.15,"max_x":0,"max_y":0.15,"mirror":null},
"84":{"x":0,"y":-1.758,"name":"a84","min_x":0,"min_y":0.545,"max_x":0,"max_y":0.845,"mirror":null},
"85":{"x":-1.076,"y":-0.722,"name":"a85","min_x":0.242,"min_y":-0.426,"max_x":0.242,"max_y":-0.126,"mirror":87},
"86":{"x":-0.945,"y":-1.632,"name":"a86","min_x":-0.02,"min_y":0.447,"max_x":-0.02,"max_y":0.747,"mirror":88},
"87":{"x":1.076,"y":-0.721,"name":"a87","min_x":-0.242,"min_y":-0.427,"max_x":-0.242,"max_y":-0.127,"mirror":null},
"88":{"x":0.945,"y":-1.632,"name":"a88","min_x":0.02,"min_y":0.446,"max_x":0.02,"max_y":0.746,"mirror":null},
"89":{"x":-1.076,"y":-0.722,"name":"a89","min_x":-0.157,"min_y":-0.472,"max_x":-0.157,"max_y":-0.172,"mirror":95},
"90":{"x":-0.945,"y":-1.632,"name":"a90","min_x":-0.283,"min_y":0.421,"max_x":-0.283,"max_y":0.721,"mirror":96},
"91":{"x":0,"y":-0.987,"name":"a91","min_x":-0.437,"min_y":-0.113,"max_x":-0.437,"max_y":0.187,"mirror":93},
"92":{"x":0,"y":-1.758,"name":"a92","min_x":-0.51,"min_y":0.592,"max_x":-0.51,"max_y":0.892,"mirror":94},
"93":{"x":0,"y":-0.987,"name":"a93","min_x":0.437,"min_y":-0.113,"max_x":0.437,"max_y":0.187,"mirror":null},
"94":{"x":0,"y":-1.758,"name":"a94","min_x":0.51,"min_y":0.892,"max_x":0.51,"max_y":0.592,"mirror":null},
"95":{"x":1.076,"y":-0.721,"name":"a95","min_x":0.157,"min_y":-0.473,"max_x":0.157,"max_y":-0.273,"mirror":null},
"96":{"x":0.945,"y":-1.632,"name":"a96","min_x":0.283,"min_y":0.421,"max_x":0.283,"max_y":0.721,"mirror":null},
"97":{"x":0,"y":0,"name":"a97","min_x":-6.286,"min_y":4.368,"max_x":-6.286,"max_y":4.368,"mirror":null},
"98":{"x":0,"y":0,"name":"a98","min_x":6.286,"min_y":4.368,"max_x":6.286,"max_y":4.368,"mirror":null},
"99":{"x":0,"y":-0.884,"name":"a99","min_x":0.03,"min_y":-3.42,"max_x":0.03,"max_y":-3.42,"mirror":null},
"100":{"x":0,"y":0,"name":"a100","min_x":-4.082,"min_y":-0.854,"max_x":-4.082,"max_y":-0.854,"mirror":null},
"101":{"x":0,"y":0,"name":"a101","min_x":4.082,"min_y":-0.854,"max_x":4.082,"max_y":-0.854,"mirror":null},
"102":{"x":0,"y":0,"name":"a102","min_x":-5.841,"min_y":2.294,"max_x":-5.841,"max_y":2.294,"mirror":null},
"103":{"x":0,"y":0,"name":"a103","min_x":5.841,"min_y":2.294,"max_x":5.841,"max_y":2.294,"mirror":null},
"104":{"x":0,"y":-0.884,"name":"a104","min_x":-2.028,"min_y":-2.388,"max_x":-2.028,"max_y":-2.388,"mirror":null},
"105":{"x":0,"y":-0.884,"name":"a105","min_x":2.028,"min_y":-2.388,"max_x":2.028,"max_y":-2.388,"mirror":null}}</textarea> <input type=checkbox class=jx checked>镜像 <input type=checkbox class=fz checked>镜像反转
		<br>
		最终Y偏移 <input value=0.5 id=yz /><br>
		最终X偏移 <input value=0 id=yx /><br>
		<input type=button onclick='change()' value=提交>
		
		<div class=draw>
		</div>
		
			<br>
			
			<textarea class=result onmouseover="$(this).select();" style="margin: 0px; width: 639px; height: 247px;"></textarea>
			
	</body>
</html>

    	<style></style>
	    		<script>function cd(){
	var json = eval("("+$(".ali").val()+")");
	
	var data = eval("("+json.data+")");
	
	$(".alilandmark").val(data.landmark);
	
	//document.write();
}


//获取元素的纵坐标
function getTop(e){
	var offset=e.offsetTop;
	if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
	return offset;
}
//获取元素的横坐标
function getLeft(e){
	var offset=e.offsetLeft;
	if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
	return offset;
}
function getPos(e){
	return [getLeft(e), getTop(e)];
}
//var pos = getPos(document.getElementById("floatDiv"));


//描点,参数有点的大小,颜色,点的坐标和标签
function drawPoint(opts){
	$(".draw").append("<span title='"+opts.point[2]+"' id='"+opts.point[0]+""+opts.point[1]+"' style='display: inline-block; width: "+opts.pw+"px; height: "+opts.ph+"px; background-color: "+opts.color+"; position: absolute; left: "+opts.point[0]+"px; top: "+opts.point[1]+"px;'>"+(opts.point[3]?("<div style='position: relative;'><span style='position: absolute; left: 5px; bottom: 0px; text-align: left; width: 100px; font-size:8px'>"+opts.point[3]+"</span></div>"):"")+"</span>");
}

		
		
		function test(x,y){
			
		var oldy = y;
		var oldx = x;
		//y = x;
		//x = oldy;
		//x=x/5;
		//y=y/5;
			
			//原始数据除
			/*drawPoint({
				pw:4,ph:4,color:'blue',point: [x,y,count]
			});*/
			
			
			// 根据需求进行偏移、旋转、缩放
			// 0点屏幕偏移: 500,500
			
			// 鼻子中点: y=1385.59, x=973.29
			
			// 嘴唇上瓣下部中点: y=1609.82, x=965.07
			
			//test(1187.07, 1096.02); //左眼内尖
			//test(1186.11, 853.85); //右眼内尖
			
			
			//以嘴唇部分为中点输坐标
			//var zx = 965.07; //目标0点x坐标
			//var zy = 1609.82; //目标0点y坐标
			
			
			//以鼻子中点为原点输坐标
			//var zx = 973.29; //目标0点x坐标
			//var zy = 1385.59; //目标0点y坐标
			
			//以两眼中点为原点输坐标
			//var zx = (1096.02+853.85)/2;
			//var zy = (1187.07+1186.11)/2;
			
			//var zx = 973.35;
			//var zy = 1456.54+40;
			
			//x = oldy + zerox - zx;
			//y = oldx + zeroy - zy;
			
			//var multi =  1;
			x=(x-zerox)*multi + zerox;
			y=(y-zeroy)*multi + zeroy;
			
			$(".draw").append("<font color=#ddd size=1>NO."+count+": x="+(x-zerox).toFixed(2)+" , y="+-(y-zeroy).toFixed(2)+"</font><br>");
			
			drawPoint({
				pw:4,ph:4,color:'blue',point: [x,y,"NO."+count+": x="+(x-zerox).toFixed(2)+" , y="+""+-((y-zeroy).toFixed(2)),count]
			});
			count++;
		}

//drawzb();
//var count = 1;
//drawp();



function change(){
	
	
	
	
	//var count = 1;
	var zerox = parseFloat($(".zerox").val());
	var zeroy = parseFloat($(".zeroy").val());
	
	var multi = $(".multi").val(); 
	
	$(".draw").html("");

	for(var i = zeroy/10; i<zeroy*2; i++){
		drawPoint({
			pw:2,ph:2,color:'red',point: [zerox,i]
		});
	}
		
	for(var i = zerox/10; i<zerox*2; i++){
		drawPoint({
			pw:2,ph:2,color:'green',point: [i,zeroy]
		});
	}
	
	
	
	
	//绘制人脸点
	var string = $("#points").val();
	var doubles =string.split(",");
	//alert(doubles[1]);
	
	
	//41,26 判断横纵是否正常
	var hz = Math.abs(doubles[80] - doubles[50])> Math.abs(doubles[81] - doubles[51]);
	$(".draw").append("横竖正常: "+hz+"<br>");
	
	
	//判断41与58号点绝对距离   80,81   114,115
	var m = Math.sqrt(Math.pow(doubles[80]-doubles[114],2)+Math.pow(doubles[81]-doubles[115],2));
	$(".draw").append("41-58号点绝对距离: "+m+"<br>");

	
	//倍数处理
	multi = 200/m*multi;
	$(".draw").append("实际乘积比: "+multi+" (200/"+m+"*缩放乘积比)<br>");
	
	
	//判断偏移
	
	if($(".zd").attr('checked')){
		var dian = $(".dian").val();
		if(!hz){
			var zx = doubles[(dian-1)*2+1];
			var zy = doubles[(dian-1)*2];
		}else{
			var zx = doubles[(dian-1)*2];
			var zy = doubles[(dian-1)*2+1];
			
		}
	}else{
		var zx = parseFloat($(".zx").val());
		var zy = parseFloat($(".zy").val());
	}
	
	for (var i=0;i<doubles.length;i=i+2)
	{
		
		if($(".ys").attr('checked')){
	drawPoint({
				pw:4,ph:4,color:'blue',point: [doubles[i],doubles[i+1],"NO."+(i/2+1)+": x="+(doubles[i])+" , y="+(doubles[i+1]),i/2+1]
		});
		}
		
		
		
		if(hz){
			var sourcex = parseFloat(doubles[i]);
			var sourcey = parseFloat(doubles[i+1]);
		}else{
			var sourcex = parseFloat(doubles[i+1]);
			var sourcey = parseFloat(doubles[i]);
		}
		

		
		
		//定点位移			
		x = sourcex + zerox - zx;
		y = sourcey + zeroy - zy;
		
			
	
		//缩放
		x=(x-zerox)*multi + zerox;
		y=(y-zeroy)*multi + zeroy;
		
		//document.write(x+","+y+"<br>");
		//test(y,x);
		
		$(".draw").append("<font color=#ddd size=1>NO."+(i/2+1)+": 原始x="+sourcex+",y="+sourcey+"; 屏幕x="+x+",y="+y+"  红绿坐标系x="+(x-zerox).toFixed(2)+" , y="+-(y-zeroy).toFixed(2)+"</font><br>");
			
		drawPoint({
				pw:4,ph:4,color:'blue',point: [x,y,"NO."+(i/2+1)+": x="+(x-zerox).toFixed(2)+" , y="+""+-((y-zeroy).toFixed(2)),i/2+1]
		});
		
	}
	
	
	
}
		





</script>


    	<style></style>
	    		<script>function cd(){
	var json = eval("("+$(".ali").val()+")");
	
	var data = eval("("+json.data+")");
	
	$(".alilandmark").val(data.landmark);
	
	//document.write();
}


//获取元素的纵坐标
function getTop(e){
	var offset=e.offsetTop;
	if(e.offsetParent!=null) offset+=getTop(e.offsetParent);
	return offset;
}
//获取元素的横坐标
function getLeft(e){
	var offset=e.offsetLeft;
	if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);
	return offset;
}
function getPos(e){
	return [getLeft(e), getTop(e)];
}
//var pos = getPos(document.getElementById("floatDiv"));


//描点,参数有点的大小,颜色,点的坐标和标签
function drawPoint(opts){
	$(".draw").append("<span title='"+opts.point[2]+"' id='"+opts.point[0]+""+opts.point[1]+"' style='display: inline-block; width: "+opts.pw+"px; height: "+opts.ph+"px; background-color: "+opts.color+"; position: absolute; left: "+opts.point[0]+"px; top: "+opts.point[1]+"px;'>"+(opts.point[3]?("<div style='position: relative;'><span style='position: absolute; left: 5px; bottom: 0px; text-align: left; width: 100px; font-size:8px'>"+opts.point[3]+"</span></div>"):"")+"</span>");
}

		
		
		function test(x,y){
			
		var oldy = y;
		var oldx = x;
		//y = x;
		//x = oldy;
		//x=x/5;
		//y=y/5;
			
			//原始数据除
			/*drawPoint({
				pw:4,ph:4,color:'blue',point: [x,y,count]
			});*/
			
			
			// 根据需求进行偏移、旋转、缩放
			// 0点屏幕偏移: 500,500
			
			// 鼻子中点: y=1385.59, x=973.29
			
			// 嘴唇上瓣下部中点: y=1609.82, x=965.07
			
			//test(1187.07, 1096.02); //左眼内尖
			//test(1186.11, 853.85); //右眼内尖
			
			
			//以嘴唇部分为中点输坐标
			//var zx = 965.07; //目标0点x坐标
			//var zy = 1609.82; //目标0点y坐标
			
			
			//以鼻子中点为原点输坐标
			//var zx = 973.29; //目标0点x坐标
			//var zy = 1385.59; //目标0点y坐标
			
			//以两眼中点为原点输坐标
			//var zx = (1096.02+853.85)/2;
			//var zy = (1187.07+1186.11)/2;
			
			//var zx = 973.35;
			//var zy = 1456.54+40;
			
			//x = oldy + zerox - zx;
			//y = oldx + zeroy - zy;
			
			//var multi =  1;
			x=(x-zerox)*multi + zerox;
			y=(y-zeroy)*multi + zeroy;
			
			$(".draw").append("<font color=#ddd size=1>NO."+count+": x="+(x-zerox).toFixed(2)+" , y="+-(y-zeroy).toFixed(2)+"</font><br>");
			
			drawPoint({
				pw:4,ph:4,color:'blue',point: [x,y,"NO."+count+": x="+(x-zerox).toFixed(2)+" , y="+""+-((y-zeroy).toFixed(2)),count]
			});
			count++;
		}

//drawzb();
//var count = 1;
//drawp();

var tmp = new Array();
var needed;

function change(){
	
	
	needed = eval("("+$("#needed").val()+")");
	
	
	//var count = 1;
	var zerox = parseFloat($(".zerox").val());
	var zeroy = parseFloat($(".zeroy").val());
	
	var multi = $(".multi").val(); 
	
	$(".draw").html("");

	for(var i = zeroy/10; i<zeroy*2; i++){
		drawPoint({
			pw:2,ph:2,color:'red',point: [zerox,i]
		});
	}
		
	for(var i = zerox/10; i<zerox*2; i++){
		drawPoint({
			pw:2,ph:2,color:'green',point: [i,zeroy]
		});
	}
	
	
	//绘制人脸点
	var string = $("#points").val();
	var doubles =string.split(",");
	//alert(doubles[1]);
	
	
	//41,26 判断横纵是否正常
	var hz = Math.abs(doubles[80] - doubles[50])> Math.abs(doubles[81] - doubles[51]);
	$(".draw").append("横竖正常: "+hz+"<br>");
	
	
	//判断41与58号点绝对距离   80,81   114,115
	var m = Math.sqrt(Math.pow(doubles[80]-doubles[114],2)+Math.pow(doubles[81]-doubles[115],2));
	$(".draw").append("41-58号点绝对距离: "+m+"<br>");

	
	//倍数处理
	multi = 200/m*multi;
	$(".draw").append("实际乘积比: "+multi+" (200/"+m+"*缩放乘积比)<br>");
	
	
	//判断偏移
	
	if($(".zd").attr('checked')){
		var dian = $(".dian").val();
		if(!hz){
			var zx = doubles[(dian-1)*2+1];
			var zy = doubles[(dian-1)*2];
		}else{
			var zx = doubles[(dian-1)*2];
			var zy = doubles[(dian-1)*2+1];
			
		}
	}else{
		var zx = parseFloat($(".zx").val());
		var zy = parseFloat($(".zy").val());
	}
	
	for (var i=0;i<doubles.length;i=i+2)
	{
		//打印原始点
		if($(".ys").attr('checked')){
	drawPoint({
				pw:4,ph:4,color:'blue',point: [doubles[i],doubles[i+1],"NO."+(i/2+1)+": x="+(doubles[i])+" , y="+(doubles[i+1]),$(".dydx").attr('checked')?i/2+1:'']
		});
		}
		
		
		if(needed[i/2+1]){ //该点需要输出
			
		
			//横纵处理	
			if(hz){
				var sourcex = parseFloat(doubles[i]);
				var sourcey = parseFloat(doubles[i+1]);
			}else{
				var sourcex = parseFloat(doubles[i+1]);
				var sourcey = parseFloat(doubles[i]);
			}
			
			
			if(needed[i/2+1]['mirror']!=null){ //该点镜像其他点
				
				//1 - 0,1   *2-2,*2-1
				//2 - 2,3
				//3 - 4,5
				//4 - 6,7
				
				//continue;
				//i=needed[i/2+1]['mirror']*2;
				//document.write(i);
			}
			
	
			
			//定点位移			
			x = sourcex + zerox - zx;
			y = sourcey + zeroy - zy;
			
				
		
			//大小缩放
			x=(x-zerox)*multi + zerox;
			y=(y-zeroy)*multi + zeroy;
		
		//document.write(x+","+y+"<br>");
		//test(y,x);
		
			
		//$(".draw").append("<font color=#ddd size=1>NO."+(i/2+1)+": 原始x="+sourcex+",y="+sourcey+"; 屏幕x="+x+",y="+y+"  红绿坐标系x="+(x-zerox).toFixed(2)+" , y="+-(y-zeroy).toFixed(2)+"   最终坐标系x="+((x-zerox).toFixed(2)-needed[i/2+1]['x'])+" , y="+(-(y-zeroy).toFixed(2)-needed[i/2+1]['y'])+"</font><br>");
			
			
			
			var finalx = ((x-zerox).toFixed(2)-needed[i/2+1]['x'])+parseFloat($("#yx").val());  //最终X
			var finaly = (-(y-zeroy).toFixed(2)-needed[i/2+1]['y'])+parseFloat($("#yz").val());  //最终Y
			
			
			
			//上下限处理
			if(needed[i/2+1]['min_x']!=999 & finalx<needed[i/2+1]['min_x']){
				finalx = needed[i/2+1]['min_x'];
			}
			
			
			if(needed[i/2+1]['min_y']!=999 & finaly<needed[i/2+1]['min_y']){
				finaly = needed[i/2+1]['min_y'];
			}
			
			
			if(needed[i/2+1]['max_x']!=999 & finalx>needed[i/2+1]['max_x']){
				finalx = needed[i/2+1]['max_x'];
			}
			
			
			if(needed[i/2+1]['max_y']!=999 & finaly>needed[i/2+1]['max_y']){
				finaly = needed[i/2+1]['max_y'];
			}
						
			
			////$(".draw").append("setAttr \""+needed[i/2+1]["name"]+".translateX\" "+ (finalx)+";<br>");
			////$(".draw").append("setAttr \""+needed[i/2+1]["name"]+".translateY\" "+ (finaly)+";<br>");
			
			
			//x-输出值
			//y-输出值
			//finalx-打印值
			//finaly-打印值
			
			var tmpp = { 
				x: x,
				y: y,
				finalx: finalx,
				finaly: finaly
			};
			
			//eval("tmp."+(i/2+1)+"=tmpp;");
			tmp[i/2+1]=tmpp;
			//$(".draw").append();
		
			//drawPoint({
			//		pw:4,ph:4,color:'blue',point: [x,y,"NO."+(i/2+1)+": x="+(x-zerox).toFixed(2)+" , y="+""+-((y-zeroy).toFixed(2)),$(".dydx").attr('checked')?i/2+1:'']
			//});
		
		}
		
		
		
		
	}
	
	
	if($(".fz").attr('checked')){
	for(var i = 1;i<106;i++){
		if(needed[i]["mirror"] && !needed[i]["stop"]){
			//console.log(i+":"+needed[i]["mirror"]);
			needed[needed[i]["mirror"]]["mirror"] = i;
			needed[needed[i]["mirror"]]["stop"] = true;
			needed[i]["mirror"]=null;
		}
	}
}
	
	
	$(".result").val("");
	
	var out = new Array();

	for(var i=1;i<106;i++){
		//tmp 已经记录了完成处理的x y 和finalx finaly
		
		var ooobj = new Object();
		
		if($(".jx").attr('checked') && needed[i]["mirror"]){
			
			reali = needed[i]["mirror"];
			
			$(".result").val($(".result").val()+"setAttr \""+needed[i]["name"]+".translateX\" "+ -(tmp[reali]["finalx"])+";\n");
			$(".result").val($(".result").val()+"setAttr \""+needed[i]["name"]+".translateY\" "+ (tmp[reali]["finaly"])+";\n");
			
			
		
			ooobj.name = needed[i]["name"];
			ooobj.x = -(tmp[reali]["finalx"]);
			ooobj.y = (tmp[reali]["finaly"]);
			
					
			
			drawPoint({
					pw:4,ph:4,color:'blue',point: [-(tmp[reali]["x"]-zerox)+zerox,tmp[reali]["y"],"",$(".dydx").attr('checked')?i+"("+reali+")":'']
			});
			
			
		}else{
		
			
			$(".result").val($(".result").val()+"setAttr \""+needed[i]["name"]+".translateX\" "+ (tmp[i]["finalx"])+";\n");
			$(".result").val($(".result").val()+"setAttr \""+needed[i]["name"]+".translateY\" "+ (tmp[i]["finaly"])+";\n");
		   
			ooobj.name = needed[i]["name"];
			ooobj.x = (tmp[i]["finalx"]);
			ooobj.y = (tmp[i]["finaly"]);
			
			
			drawPoint({
					pw:4,ph:4,color:'blue',point: [tmp[i]["x"],tmp[i]["y"],"NO."+i+": x="+(tmp[i]["x"]-zerox).toFixed(2)+" , y="+""+-((tmp[i]["y"]-zeroy).toFixed(2)),$(".dydx").attr('checked')?i:'']
			});
		
		}
		
		out.push(ooobj);
		
		//$(".draw").append(tmp[i]["x"]+"<br>");
	}
	
	document.write(JSON.stringify(out));



	
}
		





</script>