与许多其他类似的问题一样,我想根据其轮换在three.js
中移动一个对象。不同的是,我不能使用object.translateZ。这是因为我正在使用物理模拟器,如果我像这样更新对象,它会搞砸。以下是我的问题的fiddle示例。随意使用我的小提琴,并将您的更新版本添加到您的答案。
我希望通过基于mesh.position.x
更新mesh.position.z
和mesh.rotation.y
来推进多维数据集。
要记住,我有时会意识到three.js
使用mesh.rotation.y
访问private void Generate_PDF()
{
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
StringBuilder sb = new StringBuilder();
StringBuilder sb1 = new StringBuilder();
//Generate Invoice (Bill) Header.
sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>");
sb.Append("<tr><td align='center' style='background-color: #18B5F0' colspan = '2'><b>Bill Report</b></td></tr>");
sb.Append("<tr><td colspan = '2'></td></tr>");
sb.Append("<tr><td><b>Bill No: </b>");
sb.Append(HiddenField1.Value);
sb.Append("</td><td align = 'right'><b>Date: </b>");
sb.Append(DateTime.Now);
sb.Append(" </td></tr>");
sb.Append("</table>");
sb.Append("<br />");
GridOfTestRequest.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
StringReader sr1 = new StringReader(sb.ToString());
sb1.Append("<table border = '1'>");
sb1.Append("<tr><td align = 'right' colspan = '");
sb1.Append(GridOfTestRequest.HeaderRow.Cells.Count - 1);
sb1.Append("'>Total</td>");
sb1.Append("<td>");
sb1.Append(testList.Sum(x=>x.testFee));
sb1.Append("</td>");
sb1.Append("</tr></table>");
StringReader sr2 = new StringReader(sb1.ToString());
testList.Clear();
GridOfTestRequest.DataSource = null;
GridOfTestRequest.DataBind();
Document pdfDoc = new Document(PageSize.A5, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr1);
htmlparser.Parse(sr);
htmlparser.Parse(sr2);
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Invoic.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.Flush();
Response.ClearContent();
Response.Clear();
Response.Cookies.Clear();
Response.End();
}
轮次有点奇怪。
谢谢!
答案 0 :(得分:4)
我建议使用mesh.getWorldDirection()来获取想要移动网格的方向。然后你可以用标量乘以它来调整移动速度。
direction = mesh.getWorldDirection();
mesh.position.add(direction.multiplyScalar(moveSpeed));
祝你好运!
答案 1 :(得分:0)
要移动网格,只需增加网格所需位置的值,而不是init函数,例如:
function animate() {
mesh.position.x += 0.1;
requestAnimationFrame( animate );
renderer.render( scene, camera );
}
每次运行animate()时,此示例代码都会将网格的x位置增加0.1。