Vartotojo avataras
sudaršan
Pranešimai: 53
Užsiregistravo: 16 Spa 2018, 20:56

Muhurtų laikrodis

02 Sau 2019, 11:51

Susidomėjau indiško kalendoriaus ir laiko matavimo klausimais.

Kol kas apie dienos laiką:

Laikas matuojamas muhurtomis, para turi 30 muhurtų. Tai reiškia, kad 1 muhurta = 24val*60min/30=1440min/30=48min

Teoriškai, muhurtos turėtų būti pradedamos skaičiuoti nuo saulės patekėjimo, nes dienos pradžios momentu laikomas saulės patekėjimo momentas.

Kiekviena muhurta dar skiriama į 30 smulkesnių dalių (atitiktų "minutes"), vadinamų "kala", o kalos skiriamos dar į 30 dalių (atitiktų "sekundes"), vadinamų "kaštha".

Kaip galėtų atrodyti muhurtų laikrodis?

Atsiverskite metrinio laikrodžio Javascript kodo pavyzdį: https://codepen.io/cjnorec/pen/pgjvXR

Vietoje to kodo, kuris yra dešiniame langelyje, įkelkite pakoreguotą kodą, kuris sugeneruos "muhurtinį laikrodį", su 30 muhurtų ciferblatu, nustatytą taip, kad pirmos muhurtos skaičiavimas prasidėtų nuo saulės patekėjimo laiko sausio 2 d. Lietuvoje (saulė teka 8:42):


console.clear();
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
//console.log(ctx);

var CYCLES_PER_DAY = 1
var HOURS_PER_DAY = 30
var HOURS_PER_CYCLE = HOURS_PER_DAY/CYCLES_PER_DAY
var MINUTES_PER_HOUR = 30
var SECONDS_PER_MINUTE = 30

var FPS = 20

var width = canvas.width
var borderWidthLeft = width * .02
var borderWidthRight = width * .02
var height = canvas.height
var borderHeightTop = height * .02
var borderHeightBottom = height * .02
var clockRadius = Math.min(width, height) * .5 - Math.min(borderWidthLeft, borderWidthRight)

function drawCircle(x, y, r, color, border, bordercolor) {
  ctx.save();
  ctx.beginPath();
  ctx.arc(x, y, r, 0, 2 * Math.PI);
  ctx.fillStyle = color
  ctx.fill();
  ctx.lineWidth = border
  ctx.strokeStyle = bordercolor
  ctx.stroke();
  ctx.restore();
}

function drawLine(x1, y1, x2, y2, color, border) {
  ctx.save();
  ctx.beginPath();
  ctx.moveTo(x1, y1);
  ctx.lineTo(x2, y2);
  ctx.strokeStyle = color
  ctx.lineWidth = border
  ctx.stroke();
  ctx.restore();
}

function fromRadians(radians, radius) {
  var x = Math.cos(radians) * radius + width / 2
  var y = -Math.sin(radians) * radius + height / 2
  return [x, y]
}

function drawHand(decimal, radius, color, border) {
  var radians = -decimal * Math.PI * 2 + Math.PI / 2
  drawLine(width / 2, height / 2, fromRadians(radians, clockRadius * radius)[0], fromRadians(radians, clockRadius * radius)[1], color, border)
  drawLine(width / 2, height / 2, fromRadians(radians + Math.PI, clockRadius * radius * .1)[0], fromRadians(radians + Math.PI, clockRadius * radius * .1)[1], color, border)
}

function drawFace() {
  var NUMBER_SIZE = clockRadius*.10
  var OUTER_BORDER = 5
  var BORDER_TRIM = 3
  var BACKGROUND_COLOR="#CCCCCC"
  var BACKGROUND_COLOR="#1D1F20"
  var PRIMARY_COLOR='#1D1F20'
  var PRIMARY_COLOR='#CCCCCC'
  var SECONDARY_COLOR='#CCCCCC'
  var ACCENT_COLOR='red'

  d = new Date()
   var total_milliseconds = (d.getHours()-8) * 3600000 + (d.getMinutes()-42) * 60000 + d.getSeconds() * 1000 + d.getMilliseconds()
  var hours = total_milliseconds / 86400000 * HOURS_PER_DAY % HOURS_PER_CYCLE
  var minutes = total_milliseconds % (86400000/HOURS_PER_DAY) / (86400000/HOURS_PER_DAY) * MINUTES_PER_HOUR
  var seconds = total_milliseconds % (86400000/HOURS_PER_DAY/MINUTES_PER_HOUR) / (86400000/HOURS_PER_DAY/MINUTES_PER_HOUR) * SECONDS_PER_MINUTE
  drawCircle(width / 2, height / 2, clockRadius, BACKGROUND_COLOR, OUTER_BORDER, PRIMARY_COLOR)
  drawCircle(width / 2, height / 2, clockRadius - BORDER_TRIM * 2, BACKGROUND_COLOR, BORDER_TRIM, PRIMARY_COLOR)

  ctx.textAlign = "center"
  ctx.fillStyle = PRIMARY_COLOR
/*  ctx.font = '24px Arial'
  ctx.fillText('¯\\_(ツ)_/¯', width / 2, height / 5 * 2)
  ctx.font = '12px Consolas'
  ctx.fillText("Not Water Proof", width / 2, height / 5 * 3)*/
  ctx.font = NUMBER_SIZE + "px Arial"

  for (var i = 1; i <= HOURS_PER_CYCLE; i++) {
    var axy = fromRadians((-i + HOURS_PER_CYCLE/4) / (HOURS_PER_CYCLE/2) * Math.PI, clockRadius * .90)
    var bxy = fromRadians((-i + HOURS_PER_CYCLE/4) / (HOURS_PER_CYCLE/2) * Math.PI, clockRadius * 1 - OUTER_BORDER / 2 - BORDER_TRIM)
    var xy = fromRadians((-i + HOURS_PER_CYCLE/4) / (HOURS_PER_CYCLE/2) * Math.PI, clockRadius * .73)
    
    ctx.fillText(i, xy[0], xy[1] + NUMBER_SIZE / 2.9)
    drawLine(axy[0], axy[1], bxy[0], bxy[1], PRIMARY_COLOR, 3)
  }
  for (var i = 0; i < MINUTES_PER_HOUR; i++) {
    var axy = fromRadians((-i + (MINUTES_PER_HOUR/2)) / (MINUTES_PER_HOUR/2) * Math.PI, clockRadius * .95)
    var bxy = fromRadians((-i + (MINUTES_PER_HOUR/2)) / (MINUTES_PER_HOUR/2) * Math.PI, clockRadius * 1 - OUTER_BORDER / 2 - BORDER_TRIM)
    drawLine(axy[0], axy[1], bxy[0], bxy[1], PRIMARY_COLOR, 3)
  }

  drawHand(hours / (HOURS_PER_DAY/CYCLES_PER_DAY), .6, SECONDARY_COLOR, 6)
  drawHand(minutes / MINUTES_PER_HOUR, .8, SECONDARY_COLOR, 4)
  drawCircle(width / 2, height / 2, clockRadius * .02, PRIMARY_COLOR)
  drawHand(seconds / SECONDS_PER_MINUTE, .8, ACCENT_COLOR, 3)
  drawCircle(width / 2, height / 2, clockRadius * .01, ACCENT_COLOR)
}

window.onresize = function(){
  width = canvas.width = window.innerWidth
  height = canvas.height = window.innerHeight
  borderWidthLeft = width * .02
  borderWidthRight = width * .02
  borderHeightTop = height * .02
  borderHeightBottom = height * .02
  clockRadius = Math.min(width, height) * .5 - Math.min(borderWidthLeft, borderWidthRight)
}
setInterval(drawFace, 1000/FPS)
onresize()

Gal kas nors turi ką bendro su javascript programavimu? Būtų galima kažką dar įdomesnio padaryti, pvz. automatiškai veikiantį appsą mobiliam telefonui, kuris automatiškai nustatytų saulės tekėjimo laiką pagal lokaciją, ir toks laikrodis visada būtų sureguliuotas pagal konkretų saulės tekėjimo laiką konkrečioje vietoje.
 
Vartotojo avataras
sudaršan
Pranešimai: 53
Užsiregistravo: 16 Spa 2018, 20:56

Re: Muhurtų laikrodis

02 Sau 2019, 15:53

Iš tikro dar šiek tiek kitaip yra, 30 paros muhurtų skiriamos į 15 dienos muhurtų ir 15 nakties muhurtų. Priklausomai nuo dienos trukmės ir nakties trukmės, tos 15 muhurtų pailgėja arba sutrumpėja. 


In calculating the muhurtha, the exact length of day and night should be ascertained. Each muhurtha is said to last for 48 minutes (2 ghatis) on the assumption that the duration of day and night is of equal proportion, viz. 30 ghatis, or 12 hours. If the length of day is 28 ghatis, then each muhurtha extends for 1 ghati and 52 vighatis.
 
Vartotojo avataras
sudaršan
Pranešimai: 53
Užsiregistravo: 16 Spa 2018, 20:56

Re: Muhurtų laikrodis

03 Sau 2019, 08:34

Visgi egzistuoja dvi nuomonės, pagal vieną muhurtos turi būti proporcingos dienos ir nakties ilgiams, o pagal kitą muhurtų trukmė visada fiksuota (48 minutės):

Iš ISKCON Calendar Committee's Research Paper:


5. THE LENGTH OF A MUHURTA

There are different opinions on how long a muhurta is. Some say it is 48 minutes long, and some say that there are night muhurtas and day muhurtas, and that their lengths are proportional to the length of the day and night respectively. A night muhurta is a 15th of the night time. The day time is from sunrise to sunset, and night time is from sunset to next sunrise. If night and day are equal in length they will both be 12 hours long. Thus a night muhurta and a day muhurta will both be 48 minutes long. But if the day is 10 hours long and the night is 14 hours long then the day muhurta will be 40 minutes and the night muhurta will be 56 minutes. Those who use this proportional system and thus differentiate between night muhurtas and day muhuratas take the length of brahma muhurta to be 2 night muhurtas. Thus the brahma muhurta may vary in length depending on the time of the year and the latitude of the place.
The original definition of a muhurta seems to be a 15th of the day or night. In the report from the Calendar Reform Committee, appointed in 1952 by the Indian Government, it is stated that in the old system the muhurta was defined in the proportionate way as the 15th of the day and a 15th of the night, whereas more modern systems use the fixed length of 48 minutes. The persons I interviewed spoke in favor of both systems. As the computer program works now it uses the fixed system of 48 minutes. The program is already prepared though to use the
proportional system which can therefore easily be implemented.
The opinion of the persons I spoke to was as follows:
Bhakti Gunakar Maharaja: Proportionate
Haridas Shastri Goswami: Proportionate
Puri Maharaja: Fixed
Srinivas Adiga: Fixed
Sada Siva Mishra: Proportionate
(I have not been searching very much for any shastric proofs for these opinions.)
 
Vartotojo avataras
sudaršan
Pranešimai: 53
Užsiregistravo: 16 Spa 2018, 20:56

Re: Muhurtų laikrodis

03 Sau 2019, 14:46

Įkėliau į atskirą interneto puslapį, veikiantis laikrodžio variantas:

http://muhurtaclock.rf.gd/?i=1
 
Vartotojo avataras
Vilius
Pranešimai: 870
Užsiregistravo: 04 Lap 2016, 19:53

Re: Muhurtų laikrodis

03 Sau 2019, 18:49

Oho, spėjote ir laikrodį supragramuot, Sudaršan? :)

Tai daugiau kaip pažaidimas, ar vadovavimasis muhurtų laikrodžiu duoda kažkokių bonusų, palengvinimų?
Stengiuosi intelektu šlovinti Dievą, atsiprašau, jei mano pasisakymai užgauna, to labai nenoriu. Harė Krišna :)
 
Vartotojo avataras
sudaršan
Pranešimai: 53
Užsiregistravo: 16 Spa 2018, 20:56

Re: Muhurtų laikrodis

03 Sau 2019, 20:01

Aš tik paėmiau kažkieno parašytą metrinio (10 valandų, 100 minučių) laikrodžio kodą ir pakoregavau šiek tiek, tik skaičių reikšmes. Ten patogiai buvo kodas padarytas, buvo įmanoma greitai pritaikyti prie kitokios "valandų" sistemos.

Tai daugiau pažaidimas, susipažinimas su indiškuoju / vediškuoju laiko matavimo būdu. Norėjosi pažiūrėti "kaip būtų, jeigu būtų", kaip tos muhurtos galėtų praktikoje atrodyti. Kol kas apčiuopiamos praktinės naudos nejaučiu, nes kaip mes įprastai matuojam valandas, tai jau įaugę kraujyje.

Vaišnavų praktikoje, dvasiškai palankiausiu laiku yra laikoma brahma muhurta laikotarpis, kuris prasideda 2 muhurtos iki saulės patekėjimo. Jį nesunku atskaičiuoti ir naudojantis įprastu laikrodžiu: 1 val. ir 36 min. iki saulės patekėjimo.

Bet pvz. programėlė mobiliajam su žadintuvu būtų visai įdomi ir gal net kažkuo praktiškai naudinga: kuri pati nusistatytų pagal saulės patekėjimo laiką kiekvieną dieną, ir atskaičiuotų dvi muhurtas prieš patekėjimą. Dar galėtų rodyti ciferblate šviesų paros laikotarpį ir tamsų, nuo saulės nusileidimo. Tai kitoks požiūris į laiką, į dieną, į jos pradžią. Tokioje laiko paradigmoje tikriausiai galima būtų labiau suderinti savo gyvenimo ritmus su tikrąja diena (t.y. šviesiu paros metu) ir naktimi.

Pagal šitą laikrodį, miegoti reiktų eiti 20-tą muhurtą, tada miegui tektų 7 su puse muhurtos, kas sudarytų 6 val., ir atsikeliama auštant, 2 su puse muhurtos iki Saulės patekėjimo, ties 27 su puse muhurtos.

Dar muhurtos svarbios astrologijoje, kaip palankūs ir nepalankūs laikotarpiai dienoje imtis vienokių ar kitokių veiklų. Jeigu į tai pasigilinti, galima taikyti. Bet praktiškai tai naudinga tuo atveju, jeigu gyvenimas yra sutvarkytas taip, kad jau darosi svarbūs tie subtilūs laiko momentai ir subtilūs aplinkos ritmai. Kol kas aš toli nuo to :)

P.S.: radau appsą, kuris leidžia nusistatyti žadintuvą norimu minučių skaičiumi iki saulėtekio. https://play.google.com/store/apps/details?id=com.playitbyerr.waker

Dabar prisijungę

Vartotojai naršantys šį forumą: 1 ir 0 svečių