کتابخانه رایگان Go برای رسم چارچوب سیمی سهبعدی
کتابخانه منبع باز Go برای رسم چارچوب سیمی سهبعدی. این کتابخانه به توسعهدهندگان نرمافزار امکان ایجاد و مدیریت صحنههای سهبعدی، رندر فایلهای سهبعدی از طریق API ساده برای تجسم ساختارهای داده را میدهد.
کتابخانه پینهول چیست؟
در دنیای همیشه در حال تحول برنامهنویسی، ابزارهای جدید به طور مستمر امکانهای خلاقانه را گسترش میدهند—و Pinhole به عنوان یک API قدرتمند منبع باز Go برای رسم سیمکشی سهبعدی برجسته میشود. این API رایگان Go به توسعهدهندگان نرمافزار امکان میدهد تا نقاشیهای سیمکشی سهبعدی ایجاد کنند، فایلهای سهبعدی را رندر کنند و تجسمهای پیچیده را بدون تسلط بر الگوریتمهای گرافیکی سطح پایین طراحی کنند. با رابط کاربری تمیز و قابل دسترس خود، Pinhole ساخت اشیاء سهبعدی، تعریف اشیاء سفارشی و ساخت صحنههای سهبعدی غوطهور را ساده میکند. چه بخواهید یک دایره جدید اضافه کنید، یک دایره موجود را تبدیل کنید یا یک صحنه سهبعدی کامل را مدیریت کنید، Pinhole به هر دو دسته مبتدیان و توسعهدهندگان باتجربه این امکان را میدهد که بر خلاقیت تمرکز کنند نه بر پیچیدگی.
آنچه پینهول را بهویژه جذاب میکند، API شهودی آن برای ایجاد اشیاء چندمنظوره و مدیریت صحنه بدون درز است. توسعهدهندگان نرمافزار میتوانند بهراحتی نقاط دید را تنظیم کنند، شکلها را دستکاری کنند و مفاهیم سیمکشی را بدون منحنی یادگیری دشوار به زندگی بیاورند. پینهول برای طراحان، مربیان، هنرمندان و برنامهنویسان کنجکاو ایدهآل است و فرآیند ایجاد اشیاء سهبعدی و رندر آنها را به یک روند لذتبخش و ساده تبدیل میکند. با انتزاع منطق رندر پیچیده، به هر کسی امکان میدهد تا آزمایش کند، نوآوری کند و تجسمهای سهبعدی سیمکشی بصری جذاب بسازد. اگر به دنبال کشف دنیای رسم سیمکشی سهبعدی در Go هستید، پینهول تعادل کاملی از سادگی، انعطافپذیری و آزادی خلاقانه ارائه میدهد.
شروع کار با پینهول
روش پیشنهادی برای نصب پینهول استفاده از گیتهاب است. لطفاً برای نصب روان، از فرمان زیر استفاده کنید.
نصب API پینهول از طریق فرمان Get
$ go get -u github.com/tidwall/pinhole You can download the compiled shared library from گیتهاب repository.
ایجاد و مدیریت صحنه 3D از طریق API Go
کتابخانه منبع باز Pinhole به توسعهدهندگان نرمافزار امکان میدهد صحنههای سهبعدی را در برنامههای Go خود ایجاد و مدیریت کنند. این کتابخانه از چندین ویژگی مهم پشتیبانی میکند، از جمله ایجاد یک صحنه سهبعدی پایه، افزودن اشیاء، پیکربندی دوربین، رندر صحنه و موارد دیگر. این کتابخانه مجموعهای از اشکال ساده سهبعدی را فراهم میکند که میتوانید در صحنه خود استفاده کنید. همچنین میتوان اشیاء سفارشی را با تعریف رئوس، لبهها یا سطوح ایجاد کرده و به صحنه اضافه کرد. مثال زیر نشان میدهد چگونه توسعهدهندگان نرمافزار میتوانند با استفاده از دستورات Go یک صحنه سهبعدی ایجاد کنند.
چگونه یک صحنه سهبعدی پایه را با استفاده از کتابخانه Go ایجاد کنیم؟
import "github.com/tidwall/pinhole"
// Initialize the Scene
scene := pinhole.NewScene()
// Create 3D Objects:
cube := pinhole.NewCube()
//create custom objects and added to the scene
triangle := pinhole.NewObject()
triangle.Vertices = []pinhole.Vertex{
{X: 0, Y: 0, Z: 0},
{X: 1, Y: 0, Z: 0},
{X: 0, Y: 1, Z: 0},
}
triangle.Edges = []pinhole.Edge{
{0, 1},
{1, 2},
{2, 0},
}
scene.AddObject(cube)
scene.AddObject(triangle)
// Configure the Camera
camera := pinhole.NewCamera()
camera.Position = pinhole.Vector{X: 0, Y: 0, Z: 5} // Adjust the camera position
camera.Target = pinhole.Vector{X: 0, Y: 0, Z: 0} // Set the camera's target (where it's looking)
scene.SetCamera(camera)
// Render the Scene and display out
renderer := pinhole.NewRenderer(scene)
renderer.Render()
سفارشیسازی رندرینگ و کنترل دوربین
توسعهدهندگان نرمافزار میتوانند سبک رندر صحنههای سیمکشی را با گزینههای رنگ خطوط، ضخامت و تنظیمات پسزمینه سفارشی کنند. این انعطافپذیری به توسعهدهندگان امکان میدهد زیباییشناسی بصری مورد نظر خود را به دست آورند. علاوه بر این، کتابخانه کنترلهای قدرتمند دوربین را فراهم میکند که به توسعهدهندگان اجازه میدهد موقعیت، جهتگیری و تنظیمات پروجکشن دوربین را تنظیم کنند. این ویژگی امکان کاوش پویا در صحنههای سهبعدی را فراهم کرده و تعامل کاربر را ارتقا میدهد.
ایجاد شیء چندمنظوره از طریق API Go
کتابخانه Pinhole شامل مجموعه گستردهای از اشکال اولیه مانند مکعبها، کرهها و مخروطها است که ایجاد اشیاء سهبعدی رایج را آسان میکند. علاوه بر این، توسعهدهندگان میتوانند اشیاء سفارشی را با تعیین رئوس، لبهها و سطوح تعریف کنند، که امکان ساخت صحنههای سیمکشی پیچیده و منحصر به فرد را فراهم میآورد. مهندسان و طراحان میتوانند از این کتابخانه برای نمونهسازی سریع و تجسم مدلهای سهبعدی استفاده کنند، که در ارزیابی طرحها و شناسایی مشکلات احتمالی پیش از تعهد به توسعه کامل کمک میکند.
چگونه یک دایره را با استفاده از API Go اضافه، چرخاند و تبدیل کنیم؟
p := pinhole.New()
p.DrawCube(-0.3, -0.3, -0.3, 0.3, 0.3, 0.3)
p.Rotate(math.Pi/3, math.Pi/6, 0)
p.Begin()
p.DrawCircle(0, 0, 0, 0.2)
p.Rotate(0, math.Pi/2, 0)
p.Translate(-0.6, -0.4, 0)
p.Colorize(color.RGBA{255, 0, 0, 255})
p.End()
p.SavePNG("cube.png", 500, 500, nil)