我對製作一顆心非常感興趣。用C++製作一顆心
我意識到幾何原始類型。
http://www.opentk.com/doc/chapter/2/opengl/geometry/primitives
我很好奇我怎麼會去得到的曲線。我是否必須使用cmath庫並以某種方式從兩點連接它?
我一直在尋找很多不同的網站,關於製作心靈背後的數學。
http://www16.ocn.ne.jp/~akiko-y/heart2/index_heart2_E.html
http://www.mathematische-basteleien.de/heart.htm
我與移植這個數學來C++,而不是實際的數學掙扎;我剛開始學習這門語言。
如果有人能請我提供一些示例代碼和解釋,我很樂意,因爲我無法在互聯網上找到它。此外,我正在爲此項目使用SFML框架。
謝謝!
以下是當前代碼的示例。
#include <SFML/Graphics.hpp>
#include <iostream>
#include <string>
#include <ctime>
#include <cstdlib>
int main()
{
sf::RenderWindow Window;
Window.create(sf::VideoMode(800, 600), "My First Smfl Game");
Window.setKeyRepeatEnabled(false);
sf::Texture pTexture;
while(Window.isOpen())
{
sf::Event Event;
while(Window.pollEvent(Event))
{
switch(Event.type)
{
case sf::Event::Closed:
Window.close();
break;
}
}
sf::VertexArray vArray(sf::Lines, 20);
vArray[0].position = sf::Vector2f(82, 300);
vArray[1].position = sf::Vector2f(82, 84);
vArray[2].position = sf::Vector2f(82, 84);
vArray[3].position = sf::Vector2f(200, 84);
vArray[4].position = sf::Vector2f(200, 84);
vArray[5].position = sf::Vector2f(200, 100);
vArray[6].position = sf::Vector2f(200, 100);
vArray[7].position = sf::Vector2f(99, 100);
vArray[8].position = sf::Vector2f(99, 100);
vArray[9].position = sf::Vector2f(99, 284);
vArray[10].position = sf::Vector2f(99, 284);
vArray[11].position = sf::Vector2f(200, 284);
vArray[12].position = sf::Vector2f(200, 284);
vArray[13].position = sf::Vector2f(200, 300);
vArray[14].position = sf::Vector2f(200, 300);
vArray[15].position = sf::Vector2f(82, 300);
vArray[16].position = sf::Vector2f(250, 300);
vArray[17].position = sf::Vector2f(300, 82);
vArray[18].position = sf::Vector2f(380, 300);
vArray[19].position = sf::Vector2f(320, 82);
for(int k = 0; k < 20; k++)
{
int red = rand() % 255;
int green = rand() % 255;
int blue = rand() % 255;
vArray[k].color = sf::Color(red, green, blue);
}
Window.draw(vArray);
Window.display();
Window.clear();
}
}
你可能想看看貝塞爾曲線和德卡斯特里奧算法。這將使平滑的曲線繪製更容易。我已經在https://www.youtube.com/watch?v=YATikPP2q70發佈了視頻,但是對「de Casteljau」的谷歌搜索會帶來很多點擊。這很容易,試試吧! –