Ich möchte Bild auf zylindrische Tasse wickeln. Ich verwende html5 und Java Script um diese Lösung zu erreichen. Ich habe eine Idee von diesem Link: https://stackoverflow.com/questions/31424117/. Aber ich bekomme keine Lösung von diesem Link.Wrap ganze Bild auf zylindrische Tasse in Javascript html5
Ich mag hinter der Tasse verbleibende Bild wickeln, wie Form, um den verbleibenden Teil und eine Taste für eine Drehung hinzufügen.
<canvas id="canvas"></canvas>
<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var productImg = new Image();
productImg.onload = function() {
var iw = productImg.width;
var ih = productImg.height;
console.log("height");
canvas.width = iw;
canvas.height = ih;
ctx.drawImage(productImg, 0, 0, productImg.width, productImg.height, 0, 0, iw, ih);
//start();
// outline
/*ctx.beginPath();
ctx.moveTo(88, 235.734375);
ctx.bezierCurveTo(88, 234.734375, 204, 298, 327, 234.734375);
ctx.stroke();*/
};
productImg.src = "https://d2z4fd79oscvvx.cloudfront.net/0018872_inspirational_teacher_mug.jpeg";
var img = new Image();
img.onload = start;
img.src = "http://blog.foreigners.cz/wp-content/uploads/2015/05/Make-new-friends.jpg";
var pointer = 0;
function start() {
var iw = img.width;
var ih = img.height;
//canvas.width = iw + 20;
//canvas.height = ih + 20;
var x1 = 125;
var y1 = 130;
var x2 = 180;
var y2 = 190;
var x3 = 405;
var y3 = 150;
// calc line equations slope & b (m,b)
var unitT = 1/iw;
// draw vertical slices
for (var X = 0, t = 0; X < iw; X++, t += unitT) {
var xTop = (1 - t) * (1 - t) * x1 + 2 * (1 - t) * t * x2 + t * t * x3;
var yTop = (1 - t) * (1 - t) * y1 + 2 * (1 - t) * t * y2 + t * t * y3;
ctx.drawImage(img, X + pointer, 0, 1, ih, xTop, yTop, 0.85, ih - 600);
}
Wenn i den Zeigerwert in obigem Code zu ändern, als Stretch Bild verbleibt.
var pointer = 100 ;
Ich möchte Bild auf ganze Tasse wickeln und in links und rechts drehen.
eine Plunker daraus gemacht: http://plnkr.co/edit/5LAv3f8KLZ8X8zOH4yUc – Chris
-1. Nachdem ich mehr Zeit damit verbracht habe, habe ich festgestellt, dass die oben stehende Frage eine Funktion hat, die das OP schlecht kopiert hat, was der Hauptgrund dafür ist, dass dies nicht für sie funktioniert. Immer noch, @Varun, müssen Sie ein wenig Geometrie machen: Sie würden nur die Hälfte des Bildes gleichzeitig sehen, und Sie benötigen eine trigonometrische Funktion wie Cosinus, um die Projektion auszuführen, aber Sie sollten mit dem Ändern des Arbeitsbeispiels beginnen, das Sie gefunden haben für Schritt. – Chris