<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.aknotl.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ACarte_de_positionnement_stellaire_UAI</id>
	<title>Module:Carte de positionnement stellaire UAI - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.aknotl.fr/index.php?action=history&amp;feed=atom&amp;title=Module%3ACarte_de_positionnement_stellaire_UAI"/>
	<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Carte_de_positionnement_stellaire_UAI&amp;action=history"/>
	<updated>2026-08-10T05:41:16Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.aknotl.fr/index.php?title=Module:Carte_de_positionnement_stellaire_UAI&amp;diff=681&amp;oldid=prev</id>
		<title>Theau 2 : 1 version importée</title>
		<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Carte_de_positionnement_stellaire_UAI&amp;diff=681&amp;oldid=prev"/>
		<updated>2021-07-24T18:29:19Z</updated>

		<summary type="html">&lt;p&gt;1 version importée&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 24 juillet 2021 à 18:29&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki_aknotl:diff:1.41:old-680:rev-681 --&gt;
&lt;/table&gt;</summary>
		<author><name>Theau 2</name></author>
	</entry>
	<entry>
		<id>https://wiki.aknotl.fr/index.php?title=Module:Carte_de_positionnement_stellaire_UAI&amp;diff=680&amp;oldid=prev</id>
		<title>Infobox&gt;Eru : si -00 ou -0 il faut garder le signe négatif Projet:Infobox/Demandes#Les + et - dans l&#039;infobox étoile</title>
		<link rel="alternate" type="text/html" href="https://wiki.aknotl.fr/index.php?title=Module:Carte_de_positionnement_stellaire_UAI&amp;diff=680&amp;oldid=prev"/>
		<updated>2021-03-21T09:34:48Z</updated>

		<summary type="html">&lt;p&gt;si -00 ou -0 il faut garder le signe négatif &lt;a href=&quot;/index.php?title=Projet:Infobox/Demandes&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Projet:Infobox/Demandes (page inexistante)&quot;&gt;Projet:Infobox/Demandes#Les + et - dans l&amp;#039;infobox étoile&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
* Module d&amp;#039;implementation du patron Carte de positionnement stellaire UAI.&lt;br /&gt;
*&lt;br /&gt;
* Imported from https://it.wikipedia.org/w/index.php?title=Modulo:Mappa_di_localizzazione_IAU&amp;amp;oldid=84979493&lt;br /&gt;
]]--&lt;br /&gt;
&lt;br /&gt;
require(&amp;#039;Module:No globals&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local mRaDec = require(&amp;#039;Module:AdDéc&amp;#039;)&lt;br /&gt;
local cfg = mw.loadData(&amp;#039;Module:Carte de positionnement stellaire UAI/Configuration&amp;#039;)&lt;br /&gt;
local errorCategory = &amp;#039;[[Catégorie:Éléments en erreur du module Carte de positionnement stellaire UAI]]&amp;#039;&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function errhandler(msg)&lt;br /&gt;
	local cat = mw.title.getCurrentTitle().namespace == 0 and errorCategory or &amp;#039;&amp;#039;&lt;br /&gt;
	return string.format(&amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;%s&amp;#039;, msg, cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function _latinise_letters(tmparg)&lt;br /&gt;
            --2&amp;gt;--remove case&lt;br /&gt;
            tmparg=mw.ustring.lower(tmparg);&lt;br /&gt;
            --2&amp;gt;--remove acccent&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[áàâäãå]&amp;quot;, &amp;quot;a&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[æ]&amp;quot;, &amp;quot;ae&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[ç]&amp;quot;, &amp;quot;c&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[éèêë]&amp;quot;, &amp;quot;e&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[íìîï]&amp;quot;, &amp;quot;i&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[ñ]&amp;quot;, &amp;quot;n&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[óòôöõ]&amp;quot;, &amp;quot;o&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[œ]&amp;quot;, &amp;quot;oe&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[úùûü]&amp;quot;, &amp;quot;u&amp;quot;);&lt;br /&gt;
            tmparg=mw.ustring.gsub(tmparg, &amp;quot;[ýÿ]&amp;quot;, &amp;quot;y&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            return tmparg;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- http://lua-users.org/wiki/SimpleRound&lt;br /&gt;
local function round(num, idp)&lt;br /&gt;
	local mult = 10 ^ (idp or 0)&lt;br /&gt;
	return math.floor(num * mult + 0.5) / mult&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Converte la declinazione da gradi/minuti/secondi in gradi decimali&lt;br /&gt;
local function dec2deg(dec)&lt;br /&gt;
	local sign = dec.d &amp;gt;= 0 and not(dec.signe == &amp;#039;-&amp;#039;) and 1 or -1&lt;br /&gt;
	return dec.d + sign * dec.m / 60 + sign * dec.s / 3600&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Converte l&amp;#039;ascensione retta da ore/minuti/secondi in gradi decimali&lt;br /&gt;
local function ar2deg(ar)&lt;br /&gt;
	return ar.h * 15 + ar.m / 4 + ar.s / 240&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Parsifica il parametro ar con formato &amp;quot;ore/minuti/secondi&amp;quot;&lt;br /&gt;
local function parseArSlash(args)&lt;br /&gt;
	local h, m, s = string.match(args.ascension_droite, &amp;#039;^([%d]+)/(%d+)/([%d,%.]+)$&amp;#039;)&lt;br /&gt;
	h, m, s = tonumber(h), tonumber(m), tonumber(s)&lt;br /&gt;
	return (h and m and s) and ar2deg({ h = h, m = m, s = s }) or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Parsifica il parametro declinaz con formato &amp;quot;gradi/minuti/secondi&amp;quot;&lt;br /&gt;
local function parseDecSlash(args)&lt;br /&gt;
	local d, signe, m, s = string.match(args.declinaison, &amp;#039;^+?((-?)%d+)/(%d+)/([%d,%.]+)$&amp;#039;)&lt;br /&gt;
	d, m, s = tonumber(d), tonumber(m), tonumber(s)&lt;br /&gt;
	return (d and m and s) and dec2deg({ d = d, m = m, s = s, signe = signe }) or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Le funzioni getX e getY sono state ottenute dalle formule di Ysogo in&lt;br /&gt;
-- Discussioni_progetto:Astronomia#Posizione_nella_carte_della_costellazione:&lt;br /&gt;
-- X = Ax+(Aw/2)+(Ah/(DECsup-DECinf))*(DECogg-DECaxe)*sen((ARmed-ARogg)/disang)&lt;br /&gt;
-- Y = Ay+Ah-(Ah/(DECsup-DECinf))*((DECogg-DECaxe)*cos((ARmed-ARogg)/disang)-(DECinf-DECaxe))&lt;br /&gt;
local function getX(map, ar, dec, width, marksize)&lt;br /&gt;
	local x = map.ax + map.aw / 2 +&lt;br /&gt;
			  (map.ah / (map.dec_sup - map.dec_inf)) *&lt;br /&gt;
			  (dec - map.dec_axe) *&lt;br /&gt;
			  math.sin(((map.ar_med - ar) / map.dis_ang) * (math.pi / 180))&lt;br /&gt;
	-- scala il risultato in base a width e centra il marker&lt;br /&gt;
	return round(x * width / map.iw - marksize / 2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getY(map, ar, dec, width, marksize)&lt;br /&gt;
	local y = map.ay + map.ah -&lt;br /&gt;
			  (map.ah / (map.dec_sup - map.dec_inf)) *&lt;br /&gt;
			  ((dec - map.dec_axe) * math.cos(((map.ar_med - ar) / map.dis_ang) * (math.pi / 180)) - (map.dec_inf - map.dec_axe) )&lt;br /&gt;
	-- scala il risultato in base a width e centra il marker&lt;br /&gt;
	return round(y * width / map.iw - marksize / 2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getThumbnail(text, image, args, width)&lt;br /&gt;
	local divNode = mw.html.create(&amp;#039;div&amp;#039;)&lt;br /&gt;
	divNode&lt;br /&gt;
		:addClass(&amp;#039;thumb&amp;#039;)&lt;br /&gt;
		:addClass(args.float == &amp;#039;right&amp;#039; and &amp;#039;tright&amp;#039; or &amp;#039;tleft&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
			:addClass(&amp;#039;thumbinner&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;width&amp;#039;, width .. &amp;#039;px&amp;#039;)&lt;br /&gt;
			:wikitext(text)&lt;br /&gt;
			:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
				:addClass(&amp;#039;thumbcaption&amp;#039;)&lt;br /&gt;
				:wikitext(args.legende or &amp;#039;&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;div&amp;#039;)&lt;br /&gt;
					:addClass(&amp;#039;magnify&amp;#039;)&lt;br /&gt;
					:wikitext(string.format(&amp;#039;[[:File:%s]]&amp;#039;, image))&lt;br /&gt;
	return tostring(divNode)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Restituisce l&amp;#039;elenco dei codici delle mappe configurate&lt;br /&gt;
function p.maps()&lt;br /&gt;
	local sortedMaps = {}&lt;br /&gt;
	for key, _ in pairs(cfg.mappe) do&lt;br /&gt;
		table.insert(sortedMaps, key)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(sortedMaps)&lt;br /&gt;
	return mw.text.listToText(sortedMaps)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Restituisce 1 se la carte specificata è disponibile altrimenti nil&lt;br /&gt;
function p.hasmap(frame)&lt;br /&gt;
	local carte = frame.args[1] and mw.ustring.lower(frame.args[1])&lt;br /&gt;
	return (cfg.alias[carte] or cfg.mappe[carte]) and 1&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Per l&amp;#039;utilizzo da altro modulo&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local map, ar, dec, text&lt;br /&gt;
	local width = tonumber(args.width) or 260&lt;br /&gt;
	local marksize = tonumber(args.marksize) or 15&lt;br /&gt;
	&lt;br /&gt;
	-- ottiene la carte&lt;br /&gt;
	if args.carte then&lt;br /&gt;
		args.carte = _latinise_letters(args.carte)&lt;br /&gt;
	else&lt;br /&gt;
		error(&amp;#039;carte non spécifiée&amp;#039;, 2)&lt;br /&gt;
	end&lt;br /&gt;
	-- eventuale alias&lt;br /&gt;
	args.carte = cfg.alias[args.carte] or args.carte&lt;br /&gt;
	if not cfg.mappe[args.carte] then&lt;br /&gt;
		error(&amp;#039;carte non disponibile: &amp;#039; .. args.carte, 2)&lt;br /&gt;
	end&lt;br /&gt;
	map = cfg.mappe[args.carte]&lt;br /&gt;
	&lt;br /&gt;
	-- ottiene ascensione retta e declinazione&lt;br /&gt;
	if args.RA and args.DEC then&lt;br /&gt;
		ar = mRaDec.parseRA(args.RA)&lt;br /&gt;
		dec = mRaDec.parseDEC(args.DEC)&lt;br /&gt;
		if ar and dec then&lt;br /&gt;
			ar = ar2deg(ar)&lt;br /&gt;
			dec = dec2deg(dec)&lt;br /&gt;
		end&lt;br /&gt;
	elseif args.ascension_droite_dec and args.declinaison_dec then&lt;br /&gt;
		ar = args.ascension_droite_dec&lt;br /&gt;
		dec = args.declinaison_dec&lt;br /&gt;
	elseif args.ascension_droite and args.declinaison then&lt;br /&gt;
		ar = parseArSlash(args)&lt;br /&gt;
		dec = parseDecSlash(args)&lt;br /&gt;
	end&lt;br /&gt;
	if not ar or not dec then&lt;br /&gt;
		error(&amp;#039;coordonées célestes invalides&amp;#039;, 2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- carte doppia&lt;br /&gt;
	if args.carte == &amp;#039;ser&amp;#039; then&lt;br /&gt;
		map = ar &amp;gt; 255 and map.cauda or map.caput&lt;br /&gt;
	end&lt;br /&gt;
	-- per le costellazioni che attraversano il meridiano fondamentale&lt;br /&gt;
	if map.ar_med &amp;gt; ar + 180 then&lt;br /&gt;
		ar = ar + 360&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- utilizza il template Superpose&lt;br /&gt;
	text = mw.getCurrentFrame():expandTemplate {&lt;br /&gt;
		title = &amp;#039;Superpose2&amp;#039;,&lt;br /&gt;
		args = {&lt;br /&gt;
			base = map.image,&lt;br /&gt;
			base_width = width .. &amp;#039;px&amp;#039;,&lt;br /&gt;
			base_caption = &amp;#039;&amp;#039;,&lt;br /&gt;
			float = args.mark or &amp;#039;Cercle rouge 100%.svg&amp;#039;,&lt;br /&gt;
			float_width = marksize .. &amp;#039;px&amp;#039;,&lt;br /&gt;
			float_caption = args.nom or &amp;#039;&amp;#039;,&lt;br /&gt;
			x = getX(map, ar, dec, width, marksize),&lt;br /&gt;
			y = getY(map, ar, dec, width, marksize)&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return args.inclusion and text or getThumbnail(text, map.image, args, width + 2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry-point per il template {{carte di localizzazione IAU}}&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	return select(2, xpcall(function()&lt;br /&gt;
		return p._main(getArgs(frame, { parentOnly = true }))&lt;br /&gt;
	end, errhandler))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Per l&amp;#039;utilizzo da altro modulo&lt;br /&gt;
function p._main2(carte)&lt;br /&gt;
	local map, ar, dec, text&lt;br /&gt;
	&lt;br /&gt;
	-- ottiene la carte&lt;br /&gt;
	if carte then&lt;br /&gt;
		carte = _latinise_letters(carte)&lt;br /&gt;
	else&lt;br /&gt;
		error(&amp;#039;carte non spécifiée&amp;#039;, 2)&lt;br /&gt;
	end&lt;br /&gt;
	-- eventuale alias&lt;br /&gt;
	carte = cfg.alias[carte] or carte&lt;br /&gt;
	if not cfg.mappe[carte] then&lt;br /&gt;
		error(&amp;#039;carte non disponibile: &amp;#039; .. carte, 2)&lt;br /&gt;
	end&lt;br /&gt;
	map = cfg.mappe[carte]&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
	-- carte doppia&lt;br /&gt;
	if carte == &amp;#039;ser&amp;#039; then&lt;br /&gt;
		map = map.caput&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- utilizza il template Superpose&lt;br /&gt;
	text = &amp;#039;[[&amp;#039;.. map.page .. &amp;#039;|&amp;#039;.. string.gsub(map.page, &amp;#039; %(constellation%)&amp;#039;, &amp;#039;&amp;#039;) ..&amp;#039;]]&amp;#039;&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Entry-point per il template {{carte di localizzazione IAU}}&lt;br /&gt;
function p.page(frame)&lt;br /&gt;
	local carte = frame.args[1]&lt;br /&gt;
	return p._main2(carte)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Infobox&gt;Eru</name></author>
	</entry>
</feed>