{"id":207,"date":"2014-10-12T22:18:00","date_gmt":"2014-10-12T22:18:00","guid":{"rendered":"http:\/\/ifdesignelseart.com\/?p=207"},"modified":"2016-03-03T09:32:44","modified_gmt":"2016-03-03T09:32:44","slug":"placer-un-point-sur-une-sphere","status":"publish","type":"post","link":"https:\/\/ifdesignelseart.com\/?p=207","title":{"rendered":"Placer un point sur un cercle et sur une sph\u00e8re"},"content":{"rendered":"<p>Il est facile de placer un point sur un cercle, par exemple avec les lignes qui suivent :<\/p>\n<pre class=\"brush:java\">void setup(){\r\n  size(500,500);\r\n  point(250+cos(PI)*100, 250+sin(PI)*100);\r\n}<\/pre>\n<p>&#8230;qui consistent \u00e0 placer un point \u00e0 100 pixels du centre de l&rsquo;\u00e9cran (250, 250) et \u00e0 l&rsquo;angle PI (donc la moiti\u00e9 d&rsquo;un cercle).<br \/>\nLa formule est :<br \/>\n&#8211; abscisse de d\u00e9part + cosinus (angle) * rayon \/\/ pour l&rsquo;abscisse (x)<br \/>\n&#8211; ordonn\u00e9e de d\u00e9part + sinus (angle) * rayon \/\/ pour l&rsquo;ordonn\u00e9e (y)<\/p>\n<p>Dans l&rsquo;exemple qui suit, nous dessinons un trait de 200 pixels, partant du centre de l&rsquo;\u00e9cran, et aboutissant successivement \u00e0 0\u00b0, 1\u00b0, 2\u00b0, 3\u00b0,&#8230; et jusqu&rsquo;\u00e0 359\u00b0.<\/p>\n<pre class=\"brush:java\">float angle=0;\r\n\r\nvoid setup(){\r\n  size(500,500);\r\n}\r\n\r\nvoid draw(){\r\n  background(255);\r\n  angle+=TWO_PI\/360;\r\n  translate(width\/2, height\/2);\r\n  line(0, 0, cos(angle)*200, sin(angle)*200);\r\n}<\/pre>\n<p>Pour placer un point sur une sph\u00e8re, qui sera rep\u00e9r\u00e9 par trois coordonn\u00e9es (abscisse, ordonn\u00e9e et cote, ou x, y, z), il faut deux angles, que nous nommerons\u00a0<strong>phi\u00a0<\/strong>et <strong>theta<\/strong>.<br \/>\nLa formule \u00e0 appliquer est alors<\/p>\n<p>&#8211; abscisse de d\u00e9part + (sin(phi)*cos(theta))*rayon \/\/ pour l&rsquo;abscisse (x)<br \/>\n&#8211; ordonn\u00e9e de d\u00e9part + (sin(phi)*sin(theta))*rayon \/\/ pour l&rsquo;ordonn\u00e9e (y)<br \/>\n&#8211; cote de d\u00e9part + (cos(phi))*rayon \/\/ pour la cote (z)<\/p>\n<p>Un exemple d&rsquo;utilisation avec le programme qui suit, qui affiche une sph\u00e8re de 24\u00a0longitudes x 24\u00a0latitudes, tournant\u00a0sur elle-m\u00eame :<\/p>\n<pre class=\"brush:java\">float rx=0, ry=0;\r\n\r\nvoid setup() {\r\n  size(500, 500, P3D);\r\n  strokeWeight(4);\r\n}\r\n\r\nvoid draw() {\r\n  background(255);\r\n  ry+=0.01;\r\n  rx+=0.031;\r\n  float r=200;\r\n  translate(width\/2, height\/2);\r\n  rotateX(rx);\r\n  rotateY(ry);\r\n  for (float phi=0; phi&lt;TWO_PI; phi+=TWO_PI\/24) {\r\n    for (float theta=0; theta&lt;TWO_PI; theta+=TWO_PI\/24) { \r\n      float x=(sin(phi)*cos(theta))*r;\r\n      float  y=(sin(phi)*sin(theta))*r;\r\n      float z=(cos(phi))*r; \r\n      point(x, y, z);\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<p>Voici une capture d&rsquo;\u00e9cran :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-210\" src=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/10\/points.png\" alt=\"points\" width=\"200\" height=\"200\" srcset=\"https:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/10\/points.png 200w, https:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/10\/points-150x150.png 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/p>\n<p>les variables <strong>rx<\/strong> et <strong>ry<\/strong> correspondent \u00e0 l&rsquo;angle de rotation qui est appliqu\u00e9 \u00e0 l&rsquo;environnement, \u00e0 partir du point de r\u00e9f\u00e9rence (width\/2, height\/2), c&rsquo;est \u00e0 dire le centre de l&rsquo;\u00e9cran.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il est facile de placer un point sur un cercle, par exemple avec les lignes qui suivent : void setup(){ size(500,500); point(250+cos(PI)*100, 250+sin(PI)*100); } &#8230;qui consistent \u00e0 placer un point \u00e0 100 pixels du centre de l&rsquo;\u00e9cran (250, 250) et \u00e0 l&rsquo;angle PI (donc la moiti\u00e9 d&rsquo;un cercle). La formule est : &#8211; abscisse de [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-207","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=207"}],"version-history":[{"count":1,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions"}],"predecessor-version":[{"id":252,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/207\/revisions\/252"}],"wp:attachment":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}