Bir tarayıcıda JavaScript'te nasıl nokta çizileceğini öğrenelim.. teknik olarak zor değil, sadece beceriksiz olanlar ve internette bir nokta çizmeye hazır olmayanlar için - bu elbette tam bir başarı.
Bir nokta çizmenin birçok yolu var, onlara bakalım
Unity/Godot/microStudio veya binlerce oyun kurucudan herhangi birini kullanarak.. hepsi bir şekilde JavaScript veya Webassembly olacak bir kod oluşturacaklar ve yine de bize noktayı gösterecekler.Bu yol bizi ilgilendirmiyor.ne olduğunu gerçekten anlamayacağız, kod üzerindeki kontrol çok az ve kaynak kodda okunamaz olacak, ayrıca çok büyük.
Jedi'ların bu yolu bize mümkün olduğunca yakın çünkü.kodumuz gün geçtikçe geniş ve net olmayacak, çok soyutlamayacağız, kütüphanelerle kodumuzu çok büyütmeyeceğiz.Kod kontrolü de harika olurdu
Bu elbette Jedi'ların yolu.Kod mümkün olduğu kadar karmaşıktır, kontrol edilmesi gerekmeyen şeylerin maksimum kontrolü.Kaynak kodları en asgari düzeydedir ve çok iyi JavaScript bilgisi ile, güvenle bir iş bulmaya gidebiliriz, çünkü.böyle insanlara ihtiyacımız var.
Ama bizim işimiz iş bulmak değil, basit ve kolay bir şekilde nokta çizmek.Vektörümüz hız ve esnekliktir.
kütüphaneyi seçtim
p5js bir nokta çizmek için.Tabii ki sadece bu değil, eğer görev bir nokta çizmekse ve bu kadar, elbette, her şey çıplak JavaScript ile yapılmalıydı, ama bunu perspektiften yapıyorum, .k.o zaman sen ve ben harika görünecek başka şeyler yapacağız ve bunun için iyi bir araca ihtiyacımız var.Bunlardan biri p5js.golim JavaScript'te, başlatma ve yeniden çizme işlevlerini tanımlamak için bir tuval oluşturmamız gerekiyor, p5'te bu da yapılır, ancak çok kısa.
Ama önce..
JavaScript Geliştirme için Minimum Ortam Kurulumu
İndirmek
p5.min.js ve yan yana tutun.bunun gibi
index.html
<html>
<head>
<script src="p5.min.js"></script>
<script src="sketch.js"></script>
</head>
<body style="margin: 0px;">
<main>
</main>
</body>
</html>
Sketch.js
function setup() {
createCanvas(window.innerWidth, window.innerHeight);
}
function draw() {
background(0);
stroke('white');
strokeWeight(10);
point(window.innerWidth/2,window.innerHeight/2);
}
Sonuç olarak tarayıcınız bu şekilde açılacaktır.
Peki, HTML anlaşılabilir, ancak bu ne tür bir JavaScript kodudur?
kurulum işlevi başlatmadır, bir kez yürütülür, içinde bir tuval oluştururuz, yani.bir nokta çizeceğimiz alan.window.innerWidth, window.innerHeight
ekranın genişliği ve yüksekliğidir, yani.tam ekran bir tuval tanımlıyoruz ve evet, HTML'nin bunun için de çok önemli bir stili var
<body style="margin: 0px;">
Başka bir şey başlatmamıza gerek yok, sadece bir nokta çizmemiz gerekiyor.Buradaki prensibe bakın .. çekme işlevi yürütülüyor, örneğin saniyede 60 kez ve saniyede 60 kez noktamızı çizeceğiz .. bu aptalca görünüyor, sadece bir nokta çizmemiz gerekiyor ve bu kadar ama gelecekte genel tüm animasyonların temeli olacak.
Genel olarak, bir nokta çizme kodu son derece basittir:
point(10,10)
ve tüm!
Ancak, kodumuz biraz daha büyük
background(0);
stroke('white');
strokeWeight(10);
point(window.innerWidth/2,window.innerHeight/2);
arka plan siyah
Beyaz Yıldız
nokta kalınlığı 10
ve onu dikey ve yatayın ortasına çiziyoruz.
Pekala.. Tuval üzerine bir nokta çizdik, her şey olması gerektiği gibi, ama onu JavaScript kullanmadan saf HTML'ye bile çizebiliriz.. Nasıl görünürdü?
Temel ve daha da kolay hale getirir, ancak ilkeler tamamen farklıdır, işte ekranın ortasına bir kare çizmenin son kodu
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="background-color: black;">
<div style="position: fixed; top: 50%; left: 50%; background-color: white; width: 10px; height: 10px;"></div>
</body>
</html>
Sonuç hemen hemen aynı
Evet, HTML'de merkeze bir şeyler çizmek oldukça kolaydır, ancak animasyonlar eklemek ve hatta daha akıllıca bir interaktif eklemek için CSS ilkelerine göre düşünmeniz gerekecek.Oldukça ilginç bir görev olmasına rağmen.Sadece bir temel şey tüm bunları öldürür, CSS'de rastgele sayılar yoktur, bu gelecekteki tüm girişimlerimizi öldürür, bu yüzden bu yönü daha az tercih edeceğim.
Çıplak CSS'de yıldızlı bir gökyüzü yapmak istediğimi hayal edersem, o zaman her şey benim için işe yaramaz, çünküyıldızlar rastgele konumlarda görünmelidir ve önceden oluşturulmuş koordinatları varsa, çok güzel ve çok basit olmayacak, çünkü CSS'de rastgele bir sayı üreteci yazabilirsiniz, ancak bu tür kod tamamen çirkin, okunamaz ve zor görünecektir. anlamak!