के साथ कैनवास में 3 डी ड्राइंग क्या कोई फ्रेमवर्क/इंजन है जो कैनवास पर 3 डी छवियों को आकर्षित करने की क्षमता प्रदान करता है?एचडीएमएल + जेएस
मैं कुछ पुरातन (विभिन्न आकार) एक विमान में स्थित आकर्षित करने के लिए योजना बना रहा हूँ:
var dist = 2;
var hexHalfW = 35;
var lengthX = 20;
var hexR = Math.sqrt(lengthX*lengthX+hexHalfW*hexHalfW);//40.31128874
var hexDiag = 2*hexR;
var hexHeight = hexDiag;
var hexWidth = 2*hexHalfW;
function DrawHex(ctx, x, y)
{
var cx = x*(hexWidth + dist) - y*(hexWidth + dist)/2;
var cy = y*(hexR + lengthX + dist);
ctx.beginPath();
ctx.moveTo(cx, cy-hexR);
ctx.lineTo(cx+hexHalfW, cy-hexR+lengthX);
ctx.lineTo(cx+hexHalfW, cy+hexR-lengthX);
ctx.lineTo(cx, cy+hexR);
ctx.lineTo(cx-hexHalfW, cy+hexR-lengthX);
ctx.lineTo(cx-hexHalfW, cy-hexR+lengthX);
ctx.lineTo(cx, cy-hexR);
ctx.fill();
}
function draw()
{
var canvas = document.getElementById('tutorial');
if (canvas.getContext)
{
var ctx = canvas.getContext('2d');
//Pick Hexagon color, this one will be blue
ctx.fillStyle = "rgb(0, 0, 255)"; DrawHex(ctx, 1, 1);
ctx.fillStyle = "rgb(0, 0, 225)"; DrawHex(ctx, 3, 1);
ctx.fillStyle = "rgb(0, 0, 195)"; DrawHex(ctx, 4, 1);
ctx.fillStyle = "rgb(0, 0, 165)"; DrawHex(ctx, 6, 1);
ctx.fillStyle = "rgb(0, 255, 0)"; DrawHex(ctx, 3, 2);
ctx.fillStyle = "rgb(0, 225, 0)"; DrawHex(ctx, 4, 2);
ctx.fillStyle = "rgb(0, 195, 0)"; DrawHex(ctx, 5, 2);
}
}
मैं "परिप्रेक्ष्य" में इन पुरातन आकर्षित करने के लिए करना चाहते हैं: करीब आकार (स्क्रीन के नीचे में) होगा बड़ा हो, आकार "बहुत दूर" (स्क्रीन के शीर्ष में) को छोटा होना चाहिए ...
इस उद्देश्य के लिए आकार समन्वय को पुन: गणना करने की आवश्यकता है।
मान लीजिए, मुझे कुछ सूत्र मिल सकते हैं जो निर्देशांक को पुन: गणना करने और उचित कार्यों को लिखने की अनुमति देता है ... लेकिन, शायद, ऐसे कुछ इंजन हैं जो पहले से ही ऐसा कर रहे हैं?
कृपया सलाह दें।
किसी भी विचार का स्वागत है!
गैलांबलाज़: आपका सुझाव प्रश्न से जुड़ा नहीं है। लेकिन आप 100% सही हैं! मेरे कोड को अपने दिल के नजदीक न लें ... यह केवल एक प्रोटोटाइप है ... ईमानदार होने के लिए, मैं सिर्फ जेएस में वस्तुओं/कक्षाओं के साथ काम करने के तरीके सीख रहा हूं। लेकिन निश्चित रूप से, मैं 'हेक्स' वर्ग का उपयोग करूंगा :) – Budda