İçeriğe atla

General Polygon Clipper

General Polygon Clipper, çokgenlerde kırpma uygulamaları yapmayı sağlayan bir yazılım kütüphanesidir. Bu uygulama bilgisayar grafiklerindeki çokgenlerin çokgenler ile kesiştirilmesi sorununu genelleştirerek çözmeye odaklanır.

İlk tasarımı ve uygulaması 1997 yılında Manchester Üniversitesi'nde Alan Murta tarafından yapılmıştır. 2009 yılının ağustos ayında uygulamanın 2.32 sürümü çıkmıştır.

GPC ticari olmayan uygulamalarda ücretsiz kullanılabilen açık kaynak kodlu bir yazılımdır. Yazılımın üreticisi akademik çalışmalarda, araştırmalarda ve öğrenim programlarında uygulamanın kullanılmasını desteklemektedir. Ticari olarak yazılımı kullanabilmek için Manchester Üniversitesi'nin lisansına ihtiyaç duyulur.

Yazılım özünde C programlama dili ile yazılmıştır. Ancak farklı programlama dillerine çevrilmiş sürümleri de mevcuttur.

GPC'nin özellikleri

Aşağıdaki maddeler GPC'nin çokgenler üzerinde uygulayabileceği işlemlerin özetidir;

  • Fark, kesişim, ayrışım ve birleşim işlemleri gerçekleştirebilir
  • Kontur köşeleri saat yönünde veya saat yönünün tersi yönünde olarak belirtilebilir.
  • Çokgenler birden çok ayrık şekil içerebilir.
  • Şekiller içbükey, dışbükey veya kendini kesen alanlar olabilir.
  • Delikli çokgenler işlenebilir.
  • Kesişim operasyonunun çıktısı olarak programdan bir kontur veya tristrip alınabilir.
  • Tesadüf kenarları ve dejenere bölgeler doğru şekilde işlenir.

GPC'nin uygulama örnekleri

İlk başta belirttiğimiz 4 ana işlemin uygulanmasına dair örnekler şunlardır:

İki veri seti arasındaki fark işlemi;

Example of GPC Difference
Example of GPC Difference

İki veri seti arasındaki kesişim işlemi;

Example of GPC Intersection
Example of GPC Intersection

İki veri setinin birleşim işlemi;

Example of GPC Union
Example of GPC Union

İki veri setininfark ve birleşim beraber işlemi;

Example of GPC Exclusive-or
Example of GPC Exclusive-or

Diğer programlara dillerinde GPC

GPC temelde C ile yazılsa da kullanıcılar programı birçok başka dillerde de yazmaya çalışmıştır ancak bazı geçişlerde orijinal özelliklerin tamamen taşınamaması gibi bir sorunla karşılaşılmıştır. Örneğin Java diline geçişte gerçekleşmiş bilinen geçişler şunlardır ;

  1. Çokgen Farkları- Algoritma destekleniyor ancak public method bulunmuyor ve test edilmedi
  2. Çıktı- Tristirp yok
  3. Çıktı-Çoklu arayüz yok
  4. Çıktı sıralamasında delikler hep listenin sonunda
  5. Her şey daha fazla obje tabanlı özellikle çıktılar.

Çevirilen tüm diller; (Action Script 3, Borland Delphi, C#, GNU Octave, Haxe, Haskell, Java, Lua, Pascal, Perl, Python, VB.Net). Diğer dillerdeki çevrimlerde tamamen ücretsizdir.

Lisans anlaşmaları

GPC kaynak kodu ile diğer tüm dillerdeki versiyonlar, örnek uygulamalar ücretsiz biçimde,hiçbir zaman kısıtlaması olmadan ve hiçbir şirkete bağlı kalmadan indirilebilir. Ancak uygulamanın ticari kullanıp kullanılmamasına göre bazı kullanım şartları vardır. Bunlar;

  • Ticari Olmayan Kullanım: GPC kesinlikle ticari olmayan (örneğin; hobi, akademik araştırma, öğrenme) maksatlarla tamamen ücretsiz olarak kullanılabilir.
  • Ticari Kullanım: GPC'yi kâr amaçlı herhangi bir işte kullanabilmek için Manchester Ünivetsitesi'nden resmi olan GPC Commercial Use Licence temin edilmelidir.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Programlama dili</span>

Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar.

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">Derleyici</span> kaynak kodunu bilgisayarın işleyebileceği koda dönüştüren program

Derleyici, kaynak kodu makine koduna dönüştüren yazılımdır. Bir programlama dilinin derleyicisi, o programlama dili kullanılarak yazılmış olan kodu hedef işlemci mimarisine göre uygun şekilde makine koduna derler ve genellikle çıktı olarak yürütülebilir dosyanın oluşturulmasını sağlar. Bu eyleme derleme denir. Bir başka ifadeyle derleyici, bir tür yazı işleyicidir; girdi olarak yazı alır ve çıktı olarak yazı verir.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

Veri yapısı, bilgisayar ortamında verilerin etkin olarak saklanması ve işlenmesi için kullanılan yapı.

Nesne Yönelimli Çözümleme ve Tasarım, bir sistemin/sistem modülleri setinin/organizasyonun/işletme biriminin gereksinimlerinin çözümlenmesinde ve uygun bir çözümün tasarımında nesne ile modelleme tekniklerini kullanır. Modern nesne yönelimli çözümleme ve tasarım yöntemlerinin çoğu, gereksinim, tasarım, uygulama, test ve dağıtım süreçleri boyunca kullanım senaryoları üzerine kuruludur. Kullanım Senaryoları, nesne yönelimli programlama ile birlikte ortaya çıkmış olmasına rağmen yordamsal programlanan sistemlerde de işe yaramaktadır.

<span class="mw-page-title-main">NetBeans</span> Vikimedya kategorisi

NetBeans, Oracle tarafından geliştirilen bir Java geliştirme ortamıdır (IDE) ve ücretsiz olarak dağıtılmaktadır. Özellikle kullanıcı arayüzü tasarımında sağladığı kolaylıklardan dolayı tercih edilmektedir. Henüz Eclipse kadar popüler olmasa da popülerliği giderek artmaktadır.

Cephe yönelimli programlama veya ilgiye yönelik programlama, çapraz kesim işlerini bölerek modülerliği artırmayı amaçlayan bir programlama yaklaşımıdır. Bütün programlama yaklaşımlarında kodlar uzadıkça, kodların anlaşılabilirliği çok düşmekte, bazen de içinden çıkılmaz bir hal almaktadır. Programlamanın varlığıyla birlikte bu sorun da hep var olmuştur. Bu sorunla savaşabilmek için sürekli çalışmalar devam etmektedir, bu süreçte ortaya çıkan önemli bir programlama yaklaşımı da Cephe Yönelimli Programlamadır.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

Java platformu dillerinden olan BeanShell, kendi sözdiziminin yanı sıra Java programlama dili sözdiziminin büyük bir bölümünü desteklemesi nedeniyle, Java programlama dilinin komut kabuğu olarak da görülebilir. BeanShell'in bu özelliği, küçük Java kod parçalarının denenmesinde ve Java platformu için yazılmış sınıf dosyalarının yüklenip, birim sınamalarının yapılmasında, düzenle-derle-çalıştır döngüsünü kısaltması sayesinde, büyük kolaylık sağlar.

<span class="mw-page-title-main">Unreal Engine</span> video oyunu motoru

Unreal Engine, Epic Games tarafından geliştirilen ve ilk olarak 1998 yılında yayınlanan Unreal isimli birinci şahıs nişancı oyununda kullanılan oyun motoru. Esas olarak birinci şahıs nişancı oyunları için geliştirilmesine karşın, sonraları çeşitli türlerdeki oyunlarda kullanıldı. C++ ile yazılmış kodu sayesinde yüksek derecede taşınabilirliğe sahiptir ve günümüzde birçok oyun geliştirici tarafından kullanılan bir araç haline gelmiştir.

<span class="mw-page-title-main">MATLAB</span>

MATLAB, çok paradigmalı sayısal hesaplama yazılımı ve dördüncü nesil programlama dilidir. Özel mülk bir programlama dili olan MATLAB, MathWorks tarafından geliştirilmektedir. MATLAB kullanıcıya, matris işleme, fonksiyon ve veri çizme, algoritma uygulama, kullanıcı arayüzü oluşturma, C, C++, Java ve Fortran gibi diğer dillerde yazılmış programlarla arabağlama imkânı tanır.

Hesaplamalı Parçacık Fiziği bilgisayar tekniklerini ve bilgisayar araçlarının parçacık fiziği alanında kullanılmasıdır. Parçaçık fiziginde hesaplama teknikleri, hem teori kısmında hem de deney kısmında çok yoğun olarak kullanılmaktadır. Genel olarak yazılan bilgisayar programları simülasyon yapmak, alınan verilerin işlenmesi için kullanılır.

<span class="mw-page-title-main">Dalvik (yazılım)</span> Google tarafından yazılmış android için programlama dili

Dalvik yazılımı Google tarafından geliştirilmiş, Android için yazılmış uygulamaları yürüten ve şu an durdurulan sanal makine (VM) 'dir. Dalvik, Android 4.4 "KitKat" ve önceki Android sürümlerinin yazılım yığınının ayrılmaz bir parçasıdır; tipik olarak cep telefonları ve tablet bilgisayarlar gibi mobil cihazlarda ve daha yakınlarda Smart TV'ler ve giyilebilir bilgisayar gibi cihazlarda kullanılırdı. Dalvik, açık kaynaklı yazılım, Dan Bornstein tarafından yazılmıştır ve ismini Eyjafjörður, İzlanda da yerleşen Dalvik balıkçı köyünden almıştır. Android için programlar yaygın olarak Java ile yazılmış ve Java sanal makinesi için baytkodu derlemiştir. Daha sonra Dalvik bytecodeye çevrilmiş ve .dex ve .odex dosyalarında saklanır. Kompakt Dalvik yürütülebilir biçimi sistemleri için tasarlanmış, bellek ve işlemci hızı açısından sınırlandırılmıştır.

iOS SDK

iOS SDK Apple tarafından geliştirilen bir yazılım geliştirme kitidir. Kit, Apple'ın iOS işletim sisteminde mobil uygulamaların geliştirilmesine olanak tanır.

<span class="mw-page-title-main">Yazılım kategorileri</span>

Yazılım kategorileri, yazılım gruplarıdır. Yazılımın bu kategoriler açısından anlaşılmasını sağlamaktadırlar. Farklı sınıflandırma şemaları, yazılımların farklı yönlerini dikkate alır.

Burada, sayısal analiz veya veri analizi için kullanılmak üzere tasarlanmış önemli son kullanıcı bilgisayar uygulamaları listelenmiştir: