C comment dessiner un point / pixel sans l'aide de graphiques de la bibliothèque ou toutes les autres fonctions de la bibliothèque
J'essaie de comprendre comment je peux dessiner un ensemble de points (/set pixels) qui forment un cercle sans l'aide de la bibliothèque de fonctions.
Maintenant, l'obtention de l' (x,y) les coordonnées des points de donnée, le rayon est simple.
for (x=-r; x <r; x=x+0.1) {
y = sqrt(r*r - x*x);
draw(x,y, 0, 0);
}
Mais une fois que j'ai les points, comment faites-vous pour tracer le cercle est ce qui est source de confusion pour moi. Je peux utiliser la librairie graphique mais je veux comprendre comment vous pouvez le faire sans l'aide de la bibliothèque graphique
void draw(float x, float y, float center_x, float center_y) {
//logic to set pixel given x, y and circle's center_x and center_y
//basically print x and y on the screen say print as a dot .
//u 'd need some sort of a 2d char array but how do you translate x and y
//to pixel positions
}
Quelqu'un pourrait-il partager les liens/références, ou d'expliquer comment cela fonctionne?
Dans quel environnement?
veuillez définir "tracer"! si vous voulez dire: "imprimer sur l'écran", cela dépend beaucoup de ce que le système que vous utilisez.
veuillez définir "tracer"! si vous voulez dire: "imprimer sur l'écran", cela dépend beaucoup de ce que le système que vous utilisez.
OriginalL'auteur user999755 | 2013-02-25
Vous devez vous connecter pour publier un commentaire.
EDITH:
vous avez changé votre commentaire, d'intégrer plus de votre question, donc je vais développer ma réponse un peu.
vous avez deux ensembles de coordonnées:
vous avez besoin d'une métrique, qui transforme vos coordonnées en coordonnées d'affichage. Pour compliquer encore les choses, vous avez besoin d'une fenêtre (la partie du monde que vous souhaitez afficher à l'utilisateur) pour découper les choses que vous faites ne peut pas montrer (comme l'afrique, si vous souhaitez montrer à l'europe). Et vous pouvez zoomer vos coordonnées pour correspondre à vos coordonnées d'affichage (comment une grande partie de l'europe que vous voulez afficher)
Ces mesures et les coupures sont de simples transformations algébriques
et ainsi de suite. Juste wikipédia pour "alegebraic transformation" ou "géométriques",
juste un numéro, vous avez le droit, 24 peut être mieux
OriginalL'auteur Peter Miehle
C'est une question difficile parce que techniquement C n'ont pas intégré d'entrée/sortie. Même l'écriture d'un fichier nécessite une bibliothèque. Sur certains systèmes, comme en mode réel à DOS, vous pouvez directement accéder à la vidéo de la mémoire et de l'ensemble de pixels par écrit les valeurs dans la mémoire, mais de nouveaux Systèmes d'exploitation vraiment obtenir de la manière de le faire. Vous pourriez essayer d'écrire un chargeur de démarrage pour lancer le programme dans un plus permissive de l'UC en mode sans OS, mais c'est une énorme boîte de pandore.
Donc, en utilisant le strict minimum, la stdio bibliothèque, vous pouvez écrire sur la sortie standard à l'aide de graphiques ascii comme les autres expositions de la réponse, ou vous pouvez afficher un simple format graphique comme xbm qui peut être affiché avec une image distincte programme de visionnage. Un meilleur choix pourrait être la netpbm formats.
Pour le cercle de dessin de la partie, jetez un oeil à la classique L'algorithme de Bresenham. Ou, de façon beaucoup trop d'informations, chapitre 1 de Jim Blinn est Un Voyage dans le Pipeline Graphique décrit 15 différentes cercle-algorithmes de dessin!
OriginalL'auteur luser droog