{"id":3529,"date":"2025-01-02T14:59:15","date_gmt":"2025-01-02T13:59:15","guid":{"rendered":"https:\/\/spgoo.org\/?page_id=3529"},"modified":"2025-01-03T09:42:06","modified_gmt":"2025-01-03T08:42:06","slug":"tuto-elaboration-du-nuancier","status":"publish","type":"page","link":"https:\/\/spgoo.org\/?page_id=3529","title":{"rendered":"tuto &#8211; \u00e9laboration du nuancier"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-text-align-center\">Tuto : Construction Nuancier <\/h2>\n\n\n\n<p>Cette page d\u00e9crit les \u00e9tapes \u00e0 suivre pour \u00e9laborer le nuancier de la partie Couleur de JSXGraph d\u00e9velopp\u00e9e dans le cadre de ce site.<\/p>\n\n\n\n<link rel='stylesheet' id='2281-css'  href='https:\/\/spgoo.org\/wp-content\/uploads\/winp-css-js\/2281.css?ver=1734081462' type='text\/css' media='all' \/>\n\n\n\n<p>Objectif de notre \u00e9ch\u00e9ancier qui parait bien simple mais qui demande quelques adaptations.<\/p>\n\n\n\n<p>On souhaite permettre aux utilisateurs de constituer leur propre nuancier \u00e0 partir de la liste des couleurs disponibles dans JSXGraph et \u00e0 partir de deux sources externes <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/web-color.aliasdmc.fr\/couleurs-bleues-html\/couleur-web-lightskyblue-rgb-hsl-hexa.html\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/web-color.aliasdmc.fr\/couleurs-bleues-html\/couleur-web-lightskyblue-rgb-hsl-hexa.html<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/colorhunt.co\/palettes\/summer\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/colorhunt.co\/palettes\/summer<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>De quoi a t-on besoin pour constituer cet outil :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D&#8217;un board.<\/li>\n\n\n\n<li>D&#8217;une zone de d\u00e9p\u00f4t des couleurs s\u00e9lectionn\u00e9es.<\/li>\n\n\n\n<li>De pouvoir s\u00e9lectionner les couleurs et les d\u00e9placer sur la zone de d\u00e9p\u00f4t.<\/li>\n\n\n\n<li>Extraire de cette s\u00e9lection, une liste des couleurs s\u00e9lectionn\u00e9es.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-0b86e1df9443d8254a9ac3aaf80cbd89\">1\/ Board <\/p>\n\n\n\n<p>D\u00e9finir une zone sp\u00e9cifique dans votre html appel\u00e9e box3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;div id=\"box3\" class=\"jxgbox\" style=\"width:100%;height:420px;\"&gt;&lt;\/div&gt;<\/code><\/pre>\n\n\n\n<p>Dans la partie Javascript, il faut initialiser le contenu de cette zone en fixant quelques propri\u00e9t\u00e9s classiques :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>board3=JXG.JSXGraph.initBoard(\"box3\", {pan: {enabled:false},boundingbox: &#91;-10,20,100,-10],\n  withLines:true, keepaspectratio:false, axis:false, showInfobox:false,\n  defaultAxes: {\n    x: { ticks: {visible: true},withLabel: true,name: '',label: {position: 'rt',offset: &#91;10, -20],anchorX: 'right',layer:20} },\n    y: { ticks: {visible: true},withLabel: false,name: '', label: {position: 'rt',offset: &#91;-25, -1],anchorY: 'top',}\n  },\n  zoom: {min: 0.5,max: 2},  layer:20\n}, showNavigation:false,showCopyright:false})};\nboard3.renderer.container.style.backgroundColor='#C3ADC3';<\/code><\/pre>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-0392c90c9239e189a7a89c695ce89a8e\">2\/ Zone de d\u00e9p\u00f4t : <\/p>\n\n\n\n<p>L&#8217;id\u00e9e est de constituer une zone dans laquelle l&#8217;utilisateur pourra en d\u00e9pla\u00e7ant les couleurs constituer son nuancier. Il aura \u00e9galement la possibilit\u00e9 de d\u00e9placer les couleurs dans l&#8217;ordre de son choix. Mais comment faire en sorte que les couleurs se positionnent correctement les unes par rapport aux autres ?  <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var centre_attractions=&#91;];\nconst nb_pts_attract=12;\n\/\/ --------------------------------------------------------------------\n\/\/ deuxi\u00e8me partie : on cr\u00e9er la zone d'acceuil des couleurs choisies\n\/\/ --------------------------------------------------------------------\nconst creation_zone_acceuil=function() {\n  const titre = board3.create('text',&#91;10,18.5,\"Votre nuancier\"],{cssStyle:\"font-family:KaTeX_Math\", fixed:true,fontsize:16});\n  const col=7, haut=17.5, bas=-8;\n  const p1 = board3.create('point', &#91;col, haut],{fixed:true,visible:false});\n  const p2 = board3.create('point', &#91;col+26, haut],{fixed:true,visible:false});\n  const p3 = board3.create('point', &#91;col+26, bas],{fixed:true,visible:false});\n  const p4 = board3.create('point', &#91;col, bas],{fixed:true,visible:false});\n  const poly = board3.create(\"polygon\", &#91;p1,p2,p3,p4],{Highlight:false,visible:true,fixed:true,fillColor:\"white\",opacity:1});\n  \/\/ -----------------------------------------------------------\n  \/\/  on genere les points d'accroche des couleurs nb_pts_attract\n  \/\/ -----------------------------------------------------------\n  centre_attractions=&#91;];  \n  for (let i=0; i&lt;nb_pts_attract; i++) {\n    let pt_poly=board3.create('point',&#91;20,bas-2+i*2],{name:'',fillColor:'lightslategray',Highlight:false,fixed:true,strokeColor:\"lightslategray\"});\n    \/\/ on stocke les points dans une liste pour un usage plus tard \n    centre_attractions.push(pt_poly);\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-d6085a05fc7782de60015992f124d9fe\">3 \/ Elaboration du dispositif de s\u00e9lection :<\/p>\n\n\n\n<p>Nous allons d\u00e9finir des rectangles de couleur avec diff\u00e9rentes propri\u00e9t\u00e9s et voir ce qui se passe dans les diff\u00e9rents cas. Pour montrer les configurations possibles pour arriver au r\u00e9sultat attendu, nous avons d\u00e9velopp\u00e9 diff\u00e9rents cas qui permettent de voir et de comprendre le processus \u00e0 mettre en place pour atteindre l&#8217;objectif fix\u00e9. S\u00e9lectionnez les diff\u00e9rents cas pour observer l&#8217;effet d&#8217;une configuration et le code correspondant.<\/p>\n\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/katex\/dist\/katex.min.js\"><\/script>\r\n<link href=\"https:\/\/cdn.jsdelivr.net\/npm\/katex\/dist\/katex.min.css\" rel=\"stylesheet\">\r\n<script type=\"text\/javascript\" charset=\"UTF-8\" src=\"https:\/\/cdn.jsdelivr.net\/npm\/jsxgraph\/distrib\/jsxgraphcore.js\"><\/script>\r\n<link rel=\"stylesheet\" type=\"text\/css\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/jsxgraph\/distrib\/jsxgraph.css\" \/>\r\n<script type=\"text\/javascript\" id=\"MathJax-script\" src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjax@3\/es5\/tex-mml-chtml.js\"> <\/script>\r\n<script>\r\n\twindow.WebFontConfig = {\r\n\t\tcustom: {\r\n\t\t\tfamilies: ['KaTeX_AMS', 'KaTeX_Caligraphic:n4,n7', 'KaTeX_Fraktur:n4,n7',\r\n\t\t\t\t\t   'KaTeX_Main:n4,n7,i4,i7', 'KaTeX_Math:i4,i7', 'KaTeX_Script',\r\n\t\t\t\t\t   'KaTeX_SansSerif:n4,n7,i4', 'KaTeX_Size1', 'KaTeX_Size2', 'KaTeX_Size3',\r\n\t\t\t\t\t   'KaTeX_Size4', 'KaTeX_Typewriter'],\r\n\t\t}\r\n\t};\r\n<\/script>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/mathjs\/lib\/browser\/math.js\"><\/script>\r\n<style>\r\n\t.textCode {\r\n\t\ttext-align:left;\r\n\t\tfont-size:16px;\r\n\t\ttab-size: 3;\r\n\t\tfont-family:KaTeX_Caligraphic;\r\n\t\tcolor: white;\r\n\t\twidth : 100%;\r\n\t\theight: 200px;\r\n\t\tbackground-Color : rgba(118, 118, 118, 0.3);\r\n\t}\r\n\tspan {\r\n\t\tfont-size:16px;\r\n\t\tcolor:white;\r\n\t\tfont-family:KaTeX_Math;\r\n\t}\r\n\tlabel {\r\n\t\t\r\n\t\tfont-family:KaTeX_Math;\r\n\t}\r\n<\/style>\r\n\r\n<center>\r\n\t\t<div style=\"width:100%;\">\r\n\t\t\t<div>\r\n\t\t\t\t<div id=\"box3\" class=\"jxgbox\" style=\"width:600px;height:420px;\"><\/div>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas1\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 1<\/label>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas2\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 2<\/label>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas3\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 3<\/label>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas4\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 4<\/label>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas5\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 5<\/label>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas6\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 6<\/label>\r\n\t\t\t\t<input type=\"checkbox\" id=\"radio_cas7\" onclick=\"recharge();\"\/><label style=\"color:white;\">Cas 7<\/label>\r\n\t\t\t\t<hr\/>\r\n\t\t\t\t<span id=\"comment_radio_cas1\" style=\"display:none\"><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\" id=\"code_radio_cas1\" style=\"display:none\"><\/div>\r\n\t\t\t\t<span id=\"comment_radio_cas2\" style=\"display:none\"><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\"  id=\"code_radio_cas2\" style=\"display:none\"><\/div>\r\n\t\t\t\t<span id=\"comment_radio_cas3\" style=\"display:none\"><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\"  id=\"code_radio_cas3\" style=\"display:none\"><\/div>\r\n\t\t\t\t<span id=\"comment_radio_cas4\" style=\"display:none\"><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\"  id=\"code_radio_cas4\" style=\"display:none\"><\/div>\r\n\t\t\t\t<span id=\"comment_radio_cas5\" style=\"display:none\"><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\"  id=\"code_radio_cas5\" style=\"display:none\"><\/div>\r\n\t\t\t\t<span id=\"comment_radio_cas6\" style=\"display:none\" ><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\"  id=\"code_radio_cas6\" style=\"display:none\"><\/div>\r\n\t\t\t\t<span id=\"comment_radio_cas7\" style=\"display:none\" ><\/span>\r\n\t\t\t\t<div class=\"textCode fen_arrondie\" id=\"code_radio_cas7\" style=\"display:none\"><\/div>\r\n\t\t\t<\/div>  \r\n\t\t<\/div>\r\n<\/center>\r\n\n\n<script type='text\/javascript'>\nvar id = \"3560\";<\/script>\n<script type='text\/javascript' src='https:\/\/spgoo.org\/wp-content\/uploads\/winp-css-js\/3560.js?ver=1735892901'><\/script>\n\n\n\n<p class=\"has-pale-cyan-blue-color has-text-color has-link-color has-medium-font-size wp-elements-50f1fdf31b64845db9f333e5438dd503\">4\/ Extraction des codes couleurs : <\/p>\n\n\n\n<p>Pour extraire les codes couleurs s\u00e9lectionn\u00e9s, c&#8217;est \u00e0 dire positionnes dans la zone de d\u00e9p\u00f4t, une solution serait de stocker toutes les couleurs charg\u00e9es sur le board \u00e0 partir des rectangle, et ensuite d&#8217;effectuer un filtre sur la liste des objets en fonction de leur position et d&#8217;en extraire la couleur. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let list_nuancier= tab_nuancier.filter((e)=&gt;e.centre.X()==20).sort(function(a,b){return b.centre.Y()-a.centre.Y()});\nlet list_couleurs=\"\";\nlist_nuancier.forEach((e)=&gt; {\n   list_couleurs +=e.centre.visProp.fillcolor +\"\\n\";\n})\nalert(list_couleurs);<\/code><\/pre>\n\n\n\n<p>Si vous voulez tester, rendez vous sur Jsfiddle : <a href=\"https:\/\/jsfiddle.net\/spgoo\/57zpdw9k\/2\/\">https:\/\/jsfiddle.net\/spgoo\/57zpdw9k\/2\/<\/a>  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tuto : Construction Nuancier Cette page d\u00e9crit les \u00e9tapes \u00e0 suivre pour \u00e9laborer le nuancier de la partie Couleur de JSXGraph d\u00e9velopp\u00e9e dans le cadre de ce site. Objectif de notre \u00e9ch\u00e9ancier qui parait bien simple mais qui demande quelques adaptations. On souhaite permettre aux utilisateurs de constituer leur propre nuancier \u00e0 partir de la [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3529","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/3529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3529"}],"version-history":[{"count":34,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/3529\/revisions"}],"predecessor-version":[{"id":3681,"href":"https:\/\/spgoo.org\/index.php?rest_route=\/wp\/v2\/pages\/3529\/revisions\/3681"}],"wp:attachment":[{"href":"https:\/\/spgoo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}