🌐 VI

🏔️ 3D Surface Plotter

Vẽ các mặt 3D z = f(x, y) dưới dạng lưới màu có thể xoay. Chọn một mẫu như yên ngựa hoặc gợn sóng, hoặc nhập hàm của riêng bạn, rồi xoay bằng các thanh trượt.

z =

Cho phép: + - * / ^ ( ) và sin, cos, tan, sqrt, abs, exp, log, pow; hằng số pi và e; biến x và y.

30
6
34°
52°
HƯỚNG DẪN

Tìm hiểu thêm

01

Biểu đồ mặt là gì?

Biểu đồ mặt trực quan hóa một hàm của hai biến, z = f(x, y), dưới dạng trường độ cao: với mỗi điểm trên mặt phẳng x/y, hàm cho ra một độ cao z, và khi nối các độ cao đó lại ta được một lưới mượt lơ lửng trong 3D. Màu sắc thường mã hóa độ cao, giúp các đỉnh và thung lũng nổi bật ngay từ cái nhìn đầu tiên. Đây là cách tự nhiên để hình dung địa hình, nhiệt độ trên một tấm phẳng, hoặc hình dạng của một mặt yên ngựa toán học.
02

Cách hiển thị chế độ 3D

Công cụ tính một lưới điểm (tối đa 40×40) bằng cách đánh giá hàm của bạn trên toàn miền, sau đó xoay chúng bằng hai góc bạn điều khiển, chiếu các điểm đã xoay xuống 2D bằng phép chiếu đẳng phối đơn giản, và sắp xếp các mặt từ xa đến gần để các mặt gần che các mặt xa hơn - thuật toán họa sĩ kinh điển. Mọi thứ đều được vẽ bằng canvas HTML thuần túy: không có WebGL hay three.js, nên công cụ nhỏ gọn và không phụ thuộc thư viện ngoài.
03

Nhập hàm an toàn

Trình phân tích whitelist tùy chỉnh sẽ đọc công thức của bạn - không có JavaScript eval - nên chỉ chấp nhận các hàm đã liệt kê (sin, cos, tan, sqrt, abs, exp, log, pow), các hằng số pi và e, cùng hai biến xy. Mọi thứ khác sẽ bị từ chối trước khi chạy. Điểm bắt đầu tốt là các mẫu có sẵn, chẳng hạn sin(x)*cos(y) cho một trường sóng lăn hoặc x^2 - y^2 cho mặt yên ngựa cổ điển.

Câu hỏi thường gặp

Tôi có thể dùng những biến nào?
Dùng <strong>x</strong> và <strong>y</strong>. Công cụ đánh giá hàm của bạn để lấy độ cao <em>z</em> tại mỗi điểm trên một lưới trong miền đã chọn.
Những hàm nào được phép?
sin, cos, tan, sqrt, abs, exp, log và pow, cùng các hằng số pi và e. Kết hợp chúng với phép toán thông thường (+ − * /) và dùng ^ cho lũy thừa, ví dụ z = sin(sqrt(x^2 + y^2)).
Công cụ này có dùng WebGL hoặc three.js không?
Không. Nó dùng phép chiếu canvas HTML tự chứa với sắp xếp mặt theo thuật toán họa sĩ, nên không có phụ thuộc bên ngoài và chạy ở mọi nơi có trình duyệt - kể cả trên phần cứng khiêm tốn.